MC MICROCOMPUTER - ANNO V - FEBBRAIO - N. 2/1985 SPED. ABB. POST. GRUPPO III - 70% - MENSILE - L 4000
Datatec
allarga gli orizzonti
del vostro
Personal Computer
Integrazioni per Personal' Computerà IBM • Olivetti • ITT ■ Italtel ■ Ericsson
Periferiche Magnetiche Rotanti • Sottosistemi di back-up
Espansioni di memoria • Schede di emulazione 3278/3279 • Reti locali
(ttMfeftis
Sistemi integrativi
00195 Roma • Via Settembrini, 28
Tel. 06/3595840-351023
4
6
8
12
16
19
28
34
36
46
52
56
64
68
75
80
86
91
95
100
104
106
111
114
118
123
131
136
159 Software MBasic - Un data base per
archiviare i programmi di MC
Pierluigi Panunzi
163 1 trucchi del CP/M
Pierluigi Panunzi
168 Guidacomputer
186 Micromarket - micromeeting
191 Microtrade
193 Campagna abbonamenti
Servizio arretrati
Indice degli inserzionisti
Il telematico prossimo futuro
Paolo Nuli
Posta
News
Stampa estera
Recensioni libri
Afrodite, il tempo al computer
Corrado Giustozzi
MCgiochi - Life II
Corrado Giustozzi
MCgiochi: recensioni
Commodore C-16
Tommaso Paniuso
ACT Apricot FI
Maurizio Bergami
Lotus Symphony per PC IBM
Corrado Giustozzi
Melbourne Draw per Spectrum
Maurizio Bergami
Handic Cale Result
Leo Sorge
Grafica
Francesco Petratti
La simulazione: dimensionamento di
un parcheggio - Valter Di Dio
TuttoSpectrum - Streams e channels:
il sistema di I/O dello Spectrum
Maurizio Bergami
Parla più Forth:
variabili, costanti ed array
Raffaello De Masi
Software MSX - La grafica
Maurizio Bergami
Le basi del Data Base
Andrea de Prisco
L'Assembler dello Z80
Pierluigi Panunzi
MCmicrofacile:
alcuni algoritmi di ordinamento
Tommaso Paniuso
Vie da zero
Il buffer di tastiera
Tommaso Paniuso
Commodore 64 - L’ADP Basic
Andrea de Prisco
Software Apple
Valter Di Dio
Software Vie 20
Tommaso Pantuso
Software Commodore 64
Leo Sorge
Software Spectrum
Maurizio Bergami
146 Software TI-99/4A
Fabio Schiattarella
150 Software
TI-99/4A Ext. Basic
Fabio Schiattarella
153 Elenco
del software disponibile
su cassetta o minifloppy
154 Software Sharp PC- 1500
Fabio Marzocco
MCmicrocomputer n. 38 (numerazione editoriale) febbraio 1985
APPLE-minus
per aggiungere le minuscole
al vostro Apple II
M/ 1 : Eprom progrommoro per Apple II delle nuove serie
(rev. 7 e successive) L 30.000
M/2: Eprom programmato per Apple II delle serie prece-
denti lo 7 + circuito stampato + 2 zoccoli 24 pin + 1
zoccolo 1 6 pin L 40.000
M/3: come il kit M/2, basetta montata e collaudata
L 55.000
Descrizione: MCn. 3 - 4 - 5 - 7
TAVOLETTA GRAFICA
per Apple II
5i collega allo zoccolo dei paddle dell’Apple II e consente
di disegnare sullo schermo in alta risoluzione. È fornita
montata, calibrata e collaudata: è compreso il piano di
lavoro con il menu su foglio di cartoncino plastificato e un
minifloppy con tutto il software, sia in Applesoft sia compila-
to. L 215.000
Descrizione: MC n. 0 - 9 - 10 - 11 - 10
VIC-TRISLOT
per Commodore VIC-20
Si collega allo slot del VIC-20 e consente di installare tre
cartucce. È costituito da un circuito stampato doppia faccio
su vetronire. con fori metallizzati e pettine dorato, tre con-
nettori (già soldati) professionali con contarti dorati per
l'inserimento delle schede, piedini sul fondo della basetta.
L 60.000
Descrizione: MC n. 16
Per acquistare 1 nostri kit:
Il pogomento può essere effettuato tramite conto corrente postale
n 14414007 Intestato a Technimedia s.r.1,. via Valsolda 135.
00141 Roma o voglio postale Per uno maggiore rapidità, puoi
invierà una lettera con allegato assegno di c/c bancario o circolare
intestato a Technimedia s.r.1. Infine, puoi acquistarlo diretramenre
presso i nostri uffici di Roma o ol nostro stand in occasione delle
mostre.
N.D. Specificare nell'ordine (Indicando il numero di partita IVA)
se desideri ricevere lo fattura.
INDICE DEGLI INSERZIONISTI
93 Armonia - V.le Carducci 5
31015 Concgliano Veneto (TV)
63/
IV cop. Bit Computers - Via F. Domiziano 10-00145 Roma
22 Byte Computers- Via G.B. Marino 29 -80 125 Napoli
189 Computer House - Via Ripamonti. 194
20141 Milano
15 Computer Net - Via G. Gastaldi 33
00128 Mostaccino (RM)
18 Comtrad - Piazza Dante 19/20 - 57100 Livorno
17 Cosmic - Via Vespasiano 56/B - Roma
Ili cop. Datamatic - Via Valtumo 46 - 20124 Milano
II cop. Datatec - Via L. Settembrini 28 - 00195 Roma
74 Dei - Largo Porta Nuova 14 - 24100 Bergamo
1 52 Discom - V ia della Pineta Sacchetti 1 63 - 00 1 68 Roma
23 Disitaco - Via Poggio Moiano 34/C - 00199 Roma
145 Easy Byte - Via G. Villani, 24/26 - 00179 Roma
24/25
26/27 Editsi - Via Pascoli. 55 - 20133 Milano
109 Electronic Devices - Via Ubaldo Comandini, 49
00173 Roma
103 Felice Pagnani - Via U. Comandini 49 - 00173 Roma
162 Flavio Marcello - Via Vicenza 27/B - 35100 Padova
21 Franco Muzzio & C. Editori - Via Makallè 73
35138 Padova
99 Infotel - Via F. Domiziano 10- 00145 Roma
14 Jetset Informatica - Via Torrevecchia 3/F - Roma
157 Liberano Electronica- Via Circonvallazione Salentina
19 - 73045 Leverano (LE)
72 Load’N’Run - MK Periodici - C.s Vittorio Emanuele
15 - 20122 Milano
149 Memor Informatica - V. Togliatti 4
56030 Perignano (Pi)
174/175 Micropro International Italia - Via Frua 14
20146 Milano
190 Micro Shop - Via Acilia 214- 00125 Acilia (RM)
89 Mipeco - Via delle Baleari 228 - Ostia
94 MSX - MK Periodici - C.so Vittorio Emanuele 15
20122 Milano
185 New Soft - Via Stefano Jacini 4 - 20121 Milano
1 10 Nuova Newel - Via Mac Mahon 75 - Milano
192 Porta Portesc - Via di Porta Maggiore 95
00185 Roma
161 Programma 2000 - Via G. Felici 20 - 00144 Roma
191 Pulsemaster - Via Puccini. 3 - 20035 Lissone (MI)
44/45 Rebit Computer - V.le Matteotti 66
20092 Cinisello Balsamo (MI)
181 Robotics - 16 New Street. St. Peter Pori. Guernsey.
Channcl Islands. England
73/130 Salone dell’Informatica - E.P.I. - Via Marochetli 27
20139 Milano
122 Segi - Via Timavo 12 - 20124 Milano
166/167 Siemens Elettra - Via Fabio Filzi 29 - 20124 Milano
13 S.M.Disk - Via Tre Colonne 23 - 05100 Temi
43 Sony Italia - Via F.lli Gracchi 30
20092 Cinisello Balsamo (MI)
8/10/
187 SVPT - Via Val Cristallina 3 - 00141 Roma
7/9 Technimedia - AUDIOrhvibw. Via Valsolda 135
00141 Roma
67/84/
85 Telcom - Via M. Civilali 75 - 20148 Milano
158 Transimage International - V.le Umberto Tupini 103
00144 Roma
1 1 3 Elle Computer - P.le della Radio 43 - 00143 Roma
33 Tre Più- Via Asmara 58 - 00199 Roma
90 Xebec International - Via Cola di Rienzo 149
00149 Roma
MCmicrocomputer n. 38 - febbraio 1985
Se ti abboni o rinnovi l’abbonamento
a MCmicrocomputer, puoi ricevere una confezione
di due minifloppy Dysan, singola faccia doppia densità,
con un supplemento di sole 3.500 lire.
Non perdere quest’occasione!
Ritaglia e spedisci oggi stesso il tagliando
per sottoscrivere l’abbonamento pubblicato
nell’ultima pagina della rivista.
I minifloppy ti saranno spediti in una robusta
confezione a prova di danneggiamenti postali.
I prodotti Dysan sono distribuiti in Italia dalla
Datamatic. Via Volturno 46. 20124 Milano.
Il Telematico
prossimo futuro
Da lenta di puma, affrontalo dai primi pionieri, quello dell'alfabetizzazione informatica di massa
si è ormai trasformato in argomento popolare: se ne parla alla radio, alla televisione, sui
quotidiani, sui settimanali, in mille convegni, al bar, sui treni: psicologi e pedagogisti discutono sui
prò e contro del computer nella scuola: i destinatari di tanta attenzione sono più sbrigativi:
acchiappano il computer e lo usano; i padri narrano con orgoglio le prodezze dei propri figli di
fronte alla tastiera : "un programma di archivio per biblioteca? Ma non c'è problema! Un
programma alfabetico (.'). mio figlio lo prepara in poche ore sul suo Commodore 64" ( captala al
volo sull'Ambrosiano del 14 gennaio). Ho impiegato qualche secondo a comprendere cosa il
distinto professionista che mi sedeva di fronte intendesse per programma alfabetico, poi un lampo -
alfabetico = senza grafica; e ho visualizzato l'immagine del padre frustrato di fronte agli sforzi di
un figlio intento ad imitare da Basic, a forza di peek e poke. la velocità di un game grafico in
"linguaggio macchina".
Avviatasi irreversibilmente quella informatica, è ormai tempo di cominciare a pensare seriamente
alla prossima alfabetizzazione di massa: quella telematica. Certo la telematica esiste più o meno
du quando esiste il computer, ma come per arrivare ad una diffusione di massa del computer è
stato necessario passare attraverso il drastico abbattimento dei costi reso possibile dalla
microelettronica, perché la telematica, riservata ai militari prima e alle grandi aziende poi. si
trasformi in risorsa pubblica occorre una altrettanto drastica riduzione dei costi e
"sdrammatizzazione" dei servizi.
Cos'è la telematica? A cosa serve? Come si fa? L'onere di rispondere alla prima domanda lo lascio
volentieri ai teorici delle comunicazioni ; risponderò invece, nell'ordine, alla terza ed alla seconda:
acchiappale un computer, un "modem" ed un telefono, chiamate un corrispondente e potrete
scambiarvi informazioni selezionale, ovvero idee, con una celerità inimmaginabile.
Chi ha provato a trasmettere in asincrono a 300 baud sa quanto una tale velocità di trasmissione
possa apparire lenta, ma cosa sono pochi minuti di fronte al tempo necessario per riunire dieci
persone intorno ad un tavolo per discutere di uno specifico argomento? O quello per discutere dello
stesso argomento per lettera? O per inviare un piccolo annuncio ad una rivista ed attendere che sia
pubblicato? O per recarsi presso una grande biblioteca a cercare tutto il materiale bibliografico
relativo ad un determinato argomento? O per domandare a 50 persone se hanno un programma per
la tale macchina in grado di fare lo scrolling inverso di riga e di quadro a velocità ragionevole? E
poi una volta che il possessore di tale programma, magari di pubblico dominio è stato individuato,
per scambiare una copia?
E questi sono solo alcuni dei tanti tipi di accesso quasi istantaneo all'informazione ed alle idee reso
possibile dalla telematica. Negli Stali Uniti, il fenomeno della telematica di massa è nato nel 1979
con " The Source" la prima società di servizi telematici a proporre un "listino prezzi" differenzialo
per tipo di utente e per fasce orarie. L'esempio di "The Source", letteralmente "la sorgente",
acquistata Tanno successivo da! Reader's Digest, è stalo seguito da molte altre società che. dopo le
6 del pomeriggio, offrono servizi telematici a prezzi popolari.
Perché la telematica divenisse popolare è stato necessario attendere che i prezzi dei "MODEM"
I Modulatore DEModulatore) scendessero ad un livello accettabile per il privato; e non appena
questo evento si è concretizzato la telematica domestica è esplosa con la nascita spontanea di
centinaia, anzi migliaia di "Computer Bulletlin Board" i cui soci possono scambiarsi messaggi e
"messaggi circolari" depositandoli in una sorta di "casella postale" elettronica, consultare archivi,
cedere o ricevere programmi dall'archivio programmi, partecipare a "conferenze su argomenti di
comune interesse" facendo circolare informazioni spesso preziose ad una velocità impensabile con
qualsiasi altro mezzo.
Ci avviamo verso una società per la quale la dimestichezza con il mezzo telematico rappresenterà
la discriminante tra il disporre o meno di informazioni e di idee, tra il poter fare ed il non poter
fare. Che l'alfabetizzazione telematica sia auspicabile, oltre che indispensabile ed irreversibile, mi
sembra scontalo, ( "è solo un problema : per fare telematica occorre una rete di canali telefonici e
questa, a differenza dei mezzi terminali, ha costi tali da poter essere affrontati solo in sede
pubblica. Non resta quindi che augurarsi che gli enti a questo preposti ( cioè SIP. Ministero delle
Poste e Telecomunicazioni e Governo) sappiano seguire il fenomeno con la necessaria prontezza
ed intelligenza.
Paolo Nuli
Anno V - numero 38
febbraio 1985
L. 4.000
Direttore:
Paolo Nuti
Condirettore:
Marco Marinacci
Ricerca e sviluppo:
Bo Amklit
Collaboratori:
Maurizio Bergami. Raffaello
De Masi. Andrea de Prisco.
Valter Di Dio, Corrado
Giustozzi, Fabio Marzocca,
Tommaso Pantuso. Pierluigi
Panunzi. Francesco Petroni.
Gina Principi, Fabio
Schiattarella. Leo Sorge.
Pietro Tasso
Segreteria di redazione:
Paola Pujia (responsabile).
Giovanna Molinari
Roberto Rubino
Grafica e impaginazione:
Roberto Saltarelli
Grafica copertina:
Studio Azcta - Roma
Fotografia:
Dario Tassa
Maurizio Ramaglia
(responsabile).
Anna Rita Fratini.
Pina Salvatore
Abbonamenti ed arretrati:
Matteo Piemontese
Direttore Responsabile:
Marco Marinacci
Tel 116 SVS 654-SW 536
© Copyright Testini media ' r I
Pubblicità:
Technimedia,
Via Valsolda 135.
00141 Roma,
tei. 06/898.654-899.526
Produzione pubblicitaria:
Cesare Veneziani
i 12 no
febbraio, n. 2 . mensile
Associato USPI
MCmicrocompuler n. 38 - febbraio 1985
Su AUDIOreview
AUDIO
pre THRESHOLO F£
•mola THRESHOLD
■SANSU! Alia.
/a più qualificata rivista italiana di elettroacustica
musica elettronica
e computer music
g»ad «oVS?’ Mao so
su AUDIOhwéw
a 1 " prosegue l’ai
■ v H o
prosegue l’analisi dettagliata di
«*EIST
DE,V.^nV V,SS »"«CS
COJiDEjysATOBI
^Pimenti strategici
su AUDIOreview di febbraio:
MIDISCKIPT64
potente editor- sequencer per tastiere MIDI e
COMMODORE 64C
Ogni mese su AUDIOnvicw i più qualificati articoli di teoria, prove, ascolto, progetto, autocostruzione di: audio domestico, audio professionale ,
audio digitale, musica elettronica, dischi analogici e "compact", car stereo.
AUDIOreview e MCmicrocomputer sono pubblicazioni Technimedia
via Valsolda 135, 00141 Roma - tei. (06) 898654/899526
Ancora su zero alla zero...
Gentile Redazione,
ho letto con interesse la risposta di Corra-
do Giustozzi al sig. Arcangeli e mi sembra di
poter concludere che entrambi abbiano in
parte ragione, essendo tuttavia necessario
restituire a Cesare quel che è.. di Cesare. È
infatti senz'altro vero che l'analisi matema-
tica sia in grado di attribuire un significato
in senso limite all 'espressione "zero alla ze-
ro", come pure è esatto (e rigorosamente
dimostrato da Giustozzi) che il limite per x
tendente a zero da destra di x alla x è 1.
Tuttavia ciò non significa che alla fórma
indeterminata "zero alla zero "si possa attri-
buire il valore 1 in ogni caso! Una dimostra-
zione piu accurata mostra in effètti che alla
suddetta espressione — significativa solo in
senso simbolico — si deve attribuire un valo-
re dipendente dalla situazione particolare.
Mi spiego meglio: Corrado pone g(x)=x,
f(x) =x, ( /unzioni infinitesime al tendere a
zero del loro argomento x) e calcola il limite
per x che tende a zero da destra di g(x) ~f(x),
ottenendo come risultato ( corretto ) il valo-
re 1. Tuttavia, si ottiene ancora lo stesso
valore scegliendo in modo diverso la coppia
di t unzioni f(x) eg(x)?La risposta è negati-
va! (segue dimostrazione ohe omettiamo
per brevità — n.d.r.) Resta cosi confermato
il fatto che non si può affermare nul la (a
priori) su una forma indeterminata!
Complimenti per la rivista e... grazie per
lo spazio riservato ai lettori più "attenti".
Stefano Lagnaste, Roma
SVP1 \
MCS System 33S
CATEGORIA: CAD
SCRITTO PER: APPLE II. Il PLUS.
IBM PC. XT
HARDWARE. 128K RAM, 1 DD..
ADAPTER GRAFICA A COLORI.
PORTA GAME I/O (IBM).
64K RAM (APPLE II. ME)
La Computer Aided Design a 3 dimen-
sioni sul vostro PC! Accetta input da
digitizer o ‘Space Tablet' ed una volta
disegnato, potete ruotare, ingrandire
tutto od una parte, traslarlo. cancella-
re linee, inserire commenti, farne
proiezioni nei 3 assi ...
Quando ho scritto la risposta al sig. Ar-
cangeli non pensavo certo di suscitare un
simile vespaio! A giudicare dal numero di
lettere giunte a commento sembra che i let-
tori di MC non aspettassero altro che l'occa-
sione di cimentarsi in una disfida matemati-
ca, come quelle che andavano di moda nel
Medio Evo. Devo dire che ciò fa piacere: sape-
re di possedere un nutrito stuolo di lettori
che ti vagliano gli scritti parola per parola è
quanto meno stimolante. Al contrario, mi
dispiace che parte di questo feedback sembri
dettato più da amore di polemica che da al-
tro, quasi che noi si sbagliasse (anche am-
messo) per far dispetto ai lettori: mi riferi-
sco in particolare agli interventi dei signori
Franco Fedeli di Caltanissetta. il quale scri-
ve “in nome della Verità Scientifica", e Wal-
ter Tross di Roma, che si congratula con me
per “essere riuscito per primo ad applicare
il teorema di De THospital ad una forma
Infinito su infinito’, giu n gendo anche al ri-
sultato corretto” (grazie delle congratula-
zioni, ma non ho alcun merito: prima di me
ci era arrivato ad esempio il Ghizzetti — cfr.
Lezioni di Analisi Matematica, voi. I, ed.
1972, teorr. 9.14.1 e 9. 14.11, ed anche pag.
191 e segg.).
Fra gli interventi più “seri" cito quelli di
Mauro Serra di Cagliari e di Stefano Lagra-
sta di Roma, quest'ultimo pubblicato in
quanto maggiormente circostanziato ma
anche per essere giunto per primo in reda-
zione, essendovi stato portato di persona
dallo stesso Lagrasta.
Cercherò di chiarire adesso la questione, e
non solo dal punto di vista matematico, spe-
rando cosi di mettere definitivamente fine
alla diatriba. Dunque: i vari interventi con-
cordano tutta (a ragione ) neU'affermare che
una cosa è una forma indeterminata ed
un'altra è il valore limite di una particolare
finizione in un particolare punto; sciogliere
una forma indeterminata per un caso parti-
colare non vuol certo dire assegnarle defini-
tivamente il valore trovato. E fin qui tutto
bene, non mi sognerei certo di affermare il
contrario. Vorrei però far notare che poi,
nella pratica, le cose cambiano. Ad esempio:
intuitivamente si è portati a confondere il
limite col valore nel punto, cosa a rigore non
lecita in quanto in generale le due quantità
possono non coincidere; ma nei casi di inte-
resse pratico si verifica sempre che coinci-
dono, e cosi si danno valori a quantità che in
teoria non ne hanno, a meno di infinite pre-
cauzioni, ma che poi vanno benissimo nella
pratica. In questo senso si può benissimo
dire che zero alla zero “fa" uno, sottinten-
dendo di identificare la quantità imprecisa-
ta “zero alla zero" con limite per x tendente
a zero da destra di x alla x, il quale, come
ormai sappiamo, si dimostra esistere ed es-
sere uguale aduno. Ciò è perfettamente leci-
to anche dal punto di vista matematico: l’ori-
gine è si punto di discontinuità per la “x'x”,
ma di discontinuità eliminabile, visto che il
suddetto l i m ite esiste determinato e finito; e
quindi la funzione risulta perfettamente de-
finita e continua anche per x=0, dove vale 1
( questo soprattutto per il sig. Serra).
La questione che solleva Stefano è invece
che non è lecito dire che 0 0 fa uno adducen-
do il fatto che x'x in Ovale 1, e questo perchè
esistono molte altre funzioni ( in realtà infi-
nite) che nell'intomo di un punto diventano
del tipo "zero alla zero", coma la "x alla x".
ma non hanno per limite 1; e quindi non ha
senso dire che zero alla zero “fa" 1 se non si
precisa quale funzione si sta considerando.
E questo è perfettamente vero. Però anche
qui entrano in ballo considerazioni di ordi-
ne pratico, e non vorrei che l'aver trascinato
la questione su di un piano formale abbia
fatto perdere di vista la portata originale del
problema, molto più terra-terra Ricordo
q uindi che si discuteva se fosse più o meno
giusto che l’interprete Basic C-86 del Casio
FP-6000 rispondesse il valore 1 all'atto di
effettuare l'operazione 0 0, anziché segnala-
re errore. La dimostrazione riportata a sco-
po illustrativo nella rispostaa al sig. Arcan-
geli serviva a chiarire che la quantità "zero
alla zero" non è un assurdo a priori ma può
avere anche un significato analitico, da as-
sumere come base per attribuire ad essa un
valore convenzionale (quando ci si metta
d'accordo sui termini della questione). Su
questa base, e senza entrare in troppi detta-
gli, ritenevo di aver giustificato la mia affer-
mazione originaria sulla correttezza del C-
86; ma forse non ho motivato chiaramente
la mia opinione, e quindi lo laccio adesso per
non dare adito ad ulteriori dubbi Dunque:
sono d’accordo che in generale alla forma
indeterminata "zero alla zero" si possa attri-
buire qualunque significato, in base alle par-
ticolari finizioni scelte nel passaggio al limi-
te-, credo però che nel caso pratico dell'inter-
prete Basic sia piu corretta la risposta 1 che
qualunque altra, ivi compresa la segnalazio-
ne d'errore; e mi spiego subito. Se adottiamo
la simbologia usata da Stefano, e consideria-
mo il limite per x tendente a 0 + dif(x) g(x),
vediamo che questo limite vale 1 se le due
finizioni vanno a zero con la stessa rapidità,
ossia sono infinitesime dello stesso ordine
(ed in particolare se sono uguali); in caso
contrario il limite può tendere a qualunque
altro valore reale. Orbene, usando un calco-
latore ci si accorge di cosa succede molto
prima di arrivare al limite: nel caso in que-
stione basta fare il calcolo in un punto molto
prossimo allo zero. Ricordo che per qualun-
que calcolatore il range dei reali non può
avvicinarsi indefinitamente allo zero: tipi-
camente in Basic il numero positivo più pic-
colo rappresentabile è 1 E-38; dopodiché, con
un salto piuttosto brusco, si passa diretta-
mente allo zero. Benché non sia corretto dal
punto di vista teorico, in pratica basta fare il
calcolo (perché è questo infine che ci inte-
ressa), anziché direttamente in x=0 ad e-
sempto in x=lE-20; il valore di f(x) g(x)
sarà praticamente coincidente con quello
del limite (teorico) in x=0. Quindi non c’è
problema di incorrere in errori dovuti al
calcolo diretto in x = 0; al fini pratici il calco-
lo in x= 1E-20 è più che sufficiente.
Rimane quindi da esaminare il caso in cui
si calcoli 0 0 direttamente, ossia non come
limite ma come, ad esempio, operazione fra
interi. Credo che a questo proposito il valore
Stroncato dalla leucemia che lo aveva
colpito poco meno di tre anni (a, Il 17
gennaio è mancato Giancarlo Atzori, che
fin dalla nascita della Technimedia ave-
va prestato il suo fondamentale contri-
buto di lavoro. Ci stringiamo intorno alla
sua famiglia nel ricordarlo con affetto.
MCmicrocomputer n. 38 - febbraio 1985
AUDIO e COMPUTER
Hai mai pensato di progettare una cassa,
una rete di crossover.un equalizzatore...?
Allora, oltre al programma, ti serve l’esperienza del progettista
reeo.wn* ““JSHSn " 11 n
" l K e S. St
s;
con il
Allora rilevali con n „ ress an per rilevarli ?
.Non hai 'Amplificata di AUDIO...
1 sla da accettare come convenzione, e al fini
pratici sla comunque preferibile ad una se-
gnalazione di errore: un po' come si fa (ma
non è la stessa cosa) con la quantità 01 (zero
fattoriale), che, pur priva di significato teo-
rico, viene considerata convenzionalmente
pari ad 1 per motivi eminentemente pratici
Ci si può chiedere allora perché scegliere
proprio 1 come valore convenzionale da as-
sociare all'operazione 0 0; la risposta è che
1 “va bene" ai fini pratici, ed inoltre ha una
giustificazione nel fatto che con la scel-
ta “più semplice” per f(x) e g(x), ossia
f(x )= g( x )= x, il limite per x tendente a 0 +
di f(x)'g(x) fa proprio 1. Spero a questo
punto di aver chiarito completamente il mio
pensiero riguardo la correttezza del C-86: la
intendo non dal punto di vista analitico, ma
da quello pratico. E termino con una annota-
zione di cronaca: in effetti non è solo il C-86
ad adottare la convenzione "0 0 = 1 "; lo fan-
no anche ÌKS-Baslc e diverse calcolatrici
(TI-59 ad esempio), tanto per citare i casi
più eclatanti II fatto che nessuno si sia mal
scagliato contro di essi ci sembra indice del-
la “non irragionevolezza" di questa scelta.
Ed in definitiva (opinione personale) non
ritengo di importanza fondamentale questo
punto nella valutazione di un linguaggio o di
una calcolatrice, essendo presumibilmente
piuttosto rare le evenienze in cui si debba
chiamare In causa direttamente la finizione
00 .
Approfitto infine dello spazio per ringra-
ziare i lettori più "attenti", come li chiama
Stefano; posso assicurarli che dei loro inter-
venti, sempre graditi, si tiene debito conto in
fase di realizzazione della rivista Errori ed
omissioni da parte nostra sono purtroppo
inevitabili (perbacco, siamo uomini anche
noi!), ma un pubblico attento e attivo, pron-
to allo scambio di critiche ed opinioni, ci
permette di costruire una rivista sempre mi-
gliore. Da parte nostra siamo sempre aperti
al dialogo: anche su argomenti tutto som-
mato... non vitali come il calcolo di zero alla
Corrado Giustozzl
C 16: caratteristiche
e compatibilità
Spettabile Sedazione di MC,
vorrei porvi qualche domanda, e vi prego
di rispondere a tutte queste mie curiosità,
che debbono essere presenti nel cuore di un
maniaco dei computer come me!
(1) Quando usciranno in Italia i nuovi
Commodore C16 e Plus 4?
(2) Hanno lo stesso linguaggio del VIC e
del 64?
(3) Esiste compatibilità tra i vecchi e i
nuovi? Voglio dire, si può usare ancora il
registratole CZN?
(4) Cosa potete dirmi sul prezzo del C16?
Vi ringrazio Un d’ora per queste informa-
Fabrizio Micale, Catania
P.S. È possibile spedirvi dei programmi su
cassetta, realizzati da lettori?
MC ha pubblicato una succosa anteprima
dei nuovi nati in casa Commodore: è stata
pubblicata a pag. 24-25 del numero 33. Le
sue domande trovano in gran parte risposta
più estesa in quell'articolo (oltre che nella
prova del C-16 che trova in questo numero),
ma comunque ne riassumiamo qui i punti
principali
(1) Come avrà notato, nelle ultime setti-
mane entrambi 1 computer sono entrati in
distribuzione.
(2) n Basic implementato su entrambi è
molto più esteso della versione V2 che cono-
sciamo, in quanto comprende anche dei co-
mandi per gestire la grafica e il suono, quan-
to mal opportuni dato che è stata proprio
questa carenza a rallentare e frenare ( per
modo di dire) il successo di entrambi VIC e
64, ma particolarmente il secondo. Va ricor-
dato anche che le molte differenze hardware
tra il VIC, il 64 e adesso i nuovi C16 e Plus 4
— che sostanzialmente hanno la medesima
architettura interna — hanno reso talvolta
diversa la gestione dei chip periferici
(schermo e musica).
Inoltre 1 nuovi hanno su Rom un pro-
gramma di gestione del linguaggio macchi-
na (monitor) da 4K, cosa questa estrema-
mente importante per lo sviluppo serio di
software, anche amatoriale. In entrambi c'è
una verifica della sintassi delle linee al mo-
mento dell'inserimento della linea stessa, e
non — come al solito — al Run; il C16 ha in
più u n a funzione di ausilio (help) che per-
mette di scoprire gli errori di sintassi for-
mulati nei programmi Basic.
(3) Come leggerà nella prova del C-16.
non siamo al momento in grado di precisar-
lo: forse si se, come sembra, la diversità è
solo nello spinotto. Resta il fatto che le pos-
sibilità di nuove periferiche come i dischi
veloci che si potranno usare con il Plus 4 e il
C16 lasciano da parte qualunque ragiona-
mento sulle cassette.
(4) Il prezzo che si trova sul listino Com-
modore è di 245.000 lire più IVA Natural-
mente è possibile che, come per il VIC e il 64,
in molti negozi si spuntino prezzi inferiori
Per la domanda fatta nel P.S. le rispondia-
mo che lei sfonda una porta aperta: come
avrà infatti notato, MCmicrocomputer dedi-
ca ampi spazi al software dei lettori
Come funziona
il comando USR?
Sono un fortunato possessore del fantasti-
co computer VIC-20. e da alcuni mesi mi
sono abbonato a MCmicrocomputer. dato
che la ritengo l'unica rivista che, oltre ad
occuparsi dei soliti giochi (che alla lunga
stufano) parla anche di programmi utili e
laboriosi — valga per tutti l'assemblatore
MCmicrocomputer n. 38 - febbraio 1985
Ho altresì notato che anche nella rubrica
MCposta vengono trattati argomenti molto
validi, e quindi vorrei porvi una domanda
relativa ad un'istruzione che secondo me è
importantissima-
USR (X)
che, tra l'altro, ben pochi conoscono, dato
che è raramente presente nei listati
Nel manuale del VIC si dice: “fa saltare il
programma ad una sequenza di istruzione
in linguaggio macchina, il cui indirizzo ini-
ziale si trova nei byte 1 e 2. Il valore di X
viene passato al programma in LM, e questo
ritorna un valore al programma Basic".
È possibile saperne di più ?
Come avviene il passaggio dei dati?
Si potrebbe avere un esempio?
Grazie.
Angelo Queirolo - Genova
Anche se il quesito riguarda 11 VIC SO,
pensiamo che comunque questa risposta
possa essere utile anche per i possessori di
macchine diverse, essendo la USR presente
In numerosi casi.
Si tratta effettivamente di un’istruzione
poco usata: ma ciò avviene in quanto serve
per usi non tanto frequenti
Il problema è relativo alla gestione del
linguaggio macchina da usarsi unitamente
al Basic. H computer, quando lavora in Ba-
sic, tiene da solo il conto delle operazioni da
eseguire. Quando si deve passare al linguag-
gio macchina, invece, bisogna dirgli do-
ve inizia il nuovo programma in quel
linguaggio: ciò generalmente si fa con una
SYS < locazione di memoria >
e il programma in LM dovrà terminare con
un ritorno al Basic: più o meno come succe-
de con le istruzioni solite
GOSUB-RETURN
Se però la routine elabora dati numerici,
come ad esempio succederebbe se si rifaces-
se una routine trigonometrica, allora dob-
biamo passare un valore, nel nostro esem-
pio un angolo. In questo caso si usa la
USR < parametro,
ove il < parametro > è un angolo. Dato che è
una funzione matematica dovremo usarla
come tale, per cui se facciamo
LET A = SIN (X)
allo stesso modo dovremo digitare
LET A = USR (X)
Abbiamo però detto che per passare dal
Basic al LM bisogna comunicare al compu-
ter la locazione di memoria da cui parte il
programma in LM: in questo caso noi non
l 'abbiamo ancora fatto. Per farlo dovremo
mettere questo indirizzo nelle famose loca-
zioni 1 e 2, con un particolare formato:
10 A = INT(< locazione >/256)
20 POKE 1.A
30 POKE 2, < locazione >-A*256
40 B = USR ( < parametro > )
50 PRINT B
Nel Commodore 64 la locazione di parten-
za del programma in LM è contenuta non in
1 e 2, bensì in 785 e 786. MC
Selle computer
Piazza della Radio. 43 - 00143 ROMA - tei. 06/5588773
Importazione diretta
Vendita diretta Spedizioni in tutta Italia
MCmicrocomputer n. 38 - lebbraio 1985
Pro-Lite Texas,
portatile 80 colonne
La Texas Instruments ha recentemente lan-
ciato sul mercato intemazionale un nuovo com-
puter portatile, o briefease (mobile piccolo) co-
me vengono chiamati adesso, dalle caratteristi-
che veramente d'avanguardia.
Il nuovo modello si chiama Pro-Lite, ecoslerà
circa 6 milioni di lire nella versione di base con
256K Ram e un dischetto da 720K byte: le sue
caratteristiche principali sono nella valigetta e
nella compatibilità software.
Il mobile ha dimensioni e peso leggermente
variabili per le due versioni con uno o due floppy
driver: 7 x 29,2 x 33 cm (47 cm con 2 floppy), c
4.7 (6,1 con 2 floppy) Kg.
Il display é un 12" a cristalli liquidi, con una
pagina testo da 80 x 25 caratteri c una grafica di
640 x 200 punti: l'elevato contrasto — regola-
bile — rende lo schermo visibile in quasi tutte le
situazioni d’uso.
L'hardwarc è basato sulla versione C-Mos
dell'8088. un microprocessore a 16 bit per il
quale c eventualmente disponibile un coproces-
sore aritmetico 8087.
La Ram disponibile varia da 256 a 768K; i
dischetti sono quelli da 3.5".
Il sistema operativo è l'MS-DOS nella versio-
ne 2.1. c il linguaggio c l'MS-Basic.
Sono poi disponibili il compilatore Basic e il
Pascal.
Vasta è la scelta tra i programmi applicativi,
sia realizzati dalla casa che da terzi: Multiplan
ed altri spreadsheet, protocolli di comunicazio-
ne con le grosse unità centrali. Wordstar ed
Easywriter. come anche i pacchetti integrati
Open Access e Frante work.
La portatilità del Pro-Lite è accresciuta dal
battcry pack, che lo rende indipendente dall’ali-
mentazione di rete per 8 ore. (La disponibilità è
prevista fra tre o quattro mesi).
Texas Instruments
02015 Citiaducale ( RI )
Motorola:
supporti per il 68020
Visto il grande successo del nuovissimo
68020. un microprocessore a 32 bit veri, la Mo-
torola si sta affrettando ad ultimare i sistemi di
sviluppo basali su questo hardware: in partico-
lare sono stati annunciati dei cross assembler
per i sistemi Exormac e VME 10.
Molto più complessa l'architettura del siste-
ma modulare Benchmark 20. per la valutazione
e il successivo studio delle caratteristiche hard c
soft del microprocessore. Lo chassis, che contie-
ne fino a 4 moduli in formato VcrsaBus, è com-
pleto di alimentatore. I moduli attualmente
disponibili sono tre. Il primo si chiama
M68KVM04. ed implementa un microcalcola-
tore su scheda singola basalo sulla CPU 68020: è
già disponibile lo zoccolo per il montaggio del
coprocessore aritmetico 68881. che lavora in
virgola mobile. Altre caratteristiche della sche-
da sono la memoria cache da 4K su 32 bit. e il
bus ad alta velocità. È possibile aggiungere una
scheda Ram dinamica di capacità da I a 4 M.
con controllo velocità c il solilo bus ad alta
velocità: il codice è M68KVM13.
L'ultima possibile espansione del sistema è un
gate array, che implementa buona parte delle
funzioni del 68851. oltre ad avere il PMMU. la
gestione della memoria in pagine (dall'inglese
Paged Memory Management Unii).
Come software si dispone ora del Monitor
020-Bug. un asscmblcr-disasscmbler di linea,
con possibilità di inserire dei Break, trace multi-
pli. modifica della memoria, comunicazione con
host computer e anche un'interfaccia a disposi-
zione dell'utente. Nel 1“ trimestre dell'85 sarà
disponibile anche un emulatore in tempo reale
con analizzatore di stati logici (frequenza di la-
voro fino a 1 6,67 MHz) per emulazione hard e
soft del 68020 sulla stazione di lavoro HDS 400.
Datatec distribuisce Ampex
nel centro-sud
La divisione computer della Ampex Italiana
ha recentemente stipulato un accordo di colla-
borazione con la Datatee di Roma. L'accordo
prevede la distribuzione nel centro-sud dei nuo-
vi sottosistemi Ampex serie Megastore. presen-
tati allo Smau di Milano e al Comdex di Las
Vegas. I sottosistemi, che lavorano sia con Win-
chester da 20 MB che con un nastro da 25 MB
(sia per back-upche come unità autonoma) han-
no riscosso un notevole successo da parte di
concessionari ed utenti di PC IBM, Olivetti.
Ericsson. Italtel. Apple ed altri.
La Datatec. leader da tempo nella fornitura di
periferiche PC IBM c compatibili, si occuperà
sia della distribuzione di queste nuove ed intelli-
genti apparecchiature che dell'opportuno sup-
porto tecnico.
ni 25. 00195 Roma
Helis: informatica
nelle scuole private romane
Per il terzo anno la Helis. a conferma del
successo dell'iniziativa, sta svolgendo corsi in
alcune delle principali scuole private della capi-
tale: S. Leone Magno. Massimo, S. Giuseppe de
Merode. Pio IX e Nazareno. I corsi sono studia-
li appositamente per gli alunni delle scuole me-
die inferiori e superiori, e si svolgono nelle aule
delle scuole medesime, articolate in un unico
livello per le medie inferiori e in tre per le supe-
riori. Il primo livello dà per grandi linee la strut-
tura di un elaboratore, il linguaggio Basic e l'uso
del registratore a cassette; il secondo approfon-
disce alcuni concetti ed insegna l'uso di periferi-
che quali la stampante e il disco; il terzo si basa
sulla memorizzazione di dati c sul linguaggio
assembly. Tulli i corsi sono pratici (oltre che
teorici), c basati su dispense: ogni computer ser-
ve al più due studenti.
Microdata distribuisce
Mindset, PC grafico
La Mie-rodata srl di Lerici ha acquisito l'esclu-
siva sul territorio nazionale per i prodotti hard-
soft dell'americana Mindset Corporation, di
Sunnyvale (California): la serie è composta da
un PC grafico con opportune compatibilità
IBM. più 4 pacchetti applicativi in ambiente
CAD,
Vediamo l'hardware. Il PC si basa sul micro-
processore 80186 con clock a 6 MHz (sistema
operativo MS-DOS 2.0) coadiuvato da due co-
processori VLSI custom per la grafica, un ulte-
riore cuslom per il suono ed infine un micropro-
cessore ad 8 bit per gestire la tastiera, l'orologio
calendario e le altre funzioni interne del sistema.
Dei due VLSI per la grafica, uno gestisce la
codifica dei colori, l'altro l'alta risoluzione c lo
spostamento di immagini: le loro caratteristiche
sono completamente sfruttale dalla speciale vcr-
12
MCmicrocomputer n. 38 - febbraio 1985
«ione del GW Basic, realizzala dalla Microsoft
proprio per sfrullare i coprocessori grafici. La
risoluzione punti-colore vede 320 x 200 punii
con 1 6 colori. 640 x 200 con 4 colori c 640 x 400
con 2 colori.
Il Mindsel è IBM compatibile per applicazio-
ni manageriali ed office a utomalion, per presen-
tare prodotti o attività, relazioni, eie. Ampie le
possibilità di sfruttamento in ambiente CAD:
oltre che per soluzioni architetturali, il PC è
adatto a studi meccanici, avionici, elettronici e
chimici, sia come unità a sé che come terminale
di un sistema maggiore.
Il software disponibile prevede 4 pacchetti,
sviluppati in proprio, ovvero adattali dal meglio
offerto dal mercato: Caddraft. Lumcna. Desi-
gner e 4Point Graphics Plus.
Caddraft progetta in due dimensioni, c può
essere usato sia con le opzioni da menu che con
altre ridefinite dall'utente. Varie le opzioni: sca-
la. griglia di riferimento, zoom. 7 strati sovrap-
ponibili (utilissimo per vedere insieme un am-
biente con impianti elettrici, idrici, etc). lesto su
grafica: la risoluzione complessiva è di 65000 x
65000 punti, di cui lo schermo mostra ovvia-
mente solo una piccola parte. Sono già disponi-
bili sottoprogrammi di pilotaggio di plotter ad
ampia diffusione (HP. Huston. Calcomp).
Lumena c di tipo artistico, c permette di crea-
re bozzetti pubblicitari, paesaggi di immagini di
vario tipo: si tratta dell'equivalente di una tavo-
letta grafica, resa familiare all'utente dal mouse
per la scelta da menu, e si possono selezionare
sia il tipo di punto, che elementi geometrici di
base, che ovviamente i colori. Tutte le immagini
possono essere spostate, ruotate, duplicate c ri-
disegnate; è presente lo zoom, eccellente la pos-
sibilità di muovere immagini su uno sfondo fis-
so. possibilità questa fondamentale per q ualsiasi
tipo di animazione. L'uscita, oltre che su moni-
tor, può essere inviata ad un'opportuna stam-
pante a colori a getto di inchiostro (ricordiamo
che questo tipo di periferica lavora anche su
trasparenti). Designer è una variante di Lume-
na. del quale conserva le caratteristiche di base:
è però orientato a lavori più accurati, tipo la
realizzazione di ornamenti o decori per piastrel-
le o maioliche.
4Point consente animazioni molto accurate: il
pennello è esclusivamente di tipo I pixel (non c'è
scelta del tratto, come negli altri programmi!.
La caratteristica più interessante c la possibilità
di memorizzare su disco i vari comandi, uno per
volta, per poi eseguirli in rapida successione,
con un'ottima resa deH'cffctto di animazione.
Mier odala Svsiem,
Via Malleoli!. 50. 19032 Lerici I SPI
Cabel propone monitor italiani
Una nuova serie di monitor a colori, corri-
spondenti alle norme IEC e realizzati intera-
mente con componenti europei, c stala realizza-
ta dalla Cabel di Cumo (BG): si tratta della serie
3700, che fa seguito alla fortunata serie 370.
Nella versione base il 3700 è un 14 pollici com-
patibile con PC IBM c con tutti i computer di
tipo homc, personal e professional dotati di u-
scita RGB. I comandi sono posti sul frontale, c
la definizione non viene meno neppure ai bordi.
Per accedere all'interno c sufficiente rimuovere
due viti.
Per la serie 3700 c stato proposto il conferi-
mento del marchio IMQ.
Per ulteriori informazioni
Cabel Elei-Ironie
Ha E Fermi 411 - 24035 Cumo i BG I
Avviso per i lei lori de I Lazio:
non perdete il prossimo numero!
Come sta il tuo 64?
In collaborazione con la Discom, u-
no dei Centri Assistenza Tecnica Com-
modore per il Lazio, MCmicrocompu-
ter offre un check-up gratuito per il
Commodore 64 a tutti coloro che si
presenteranno presso la Discom por-
tando con sé il tagliando che troveran-
no nella rivista. Approfittatene!
PC IBM anche alla Metro
La catena europea di magazzini della Metro,
da anni operante anche in Italia, ha aperto alla
serie Personal Computer IBM le sue cinque filia-
li italiane operanti a finiscilo Balsamo (MI).
Cesano Boscone(MI). Torino. Roma Laurenti-
na e Bolzaneto (GE).
La proposta Metro comprende l'assistenza
(hard e sofl). la consulenza c le documentazioni
in italiano, oltre alle particolari soluzioni econo-
miche garantite dalle condizioni Metro. Sono
inoltre già pronte svariate combinazioni hard-
soft per la segretaria, il manager, il professioni-
sta. ia piccola azienda il rappresentante e per
■'hobbista.
Via XXV Aprile 23 P
20097 San nomilo Milanese • MI
MCmicrocompuler n, 38 - febbraio 1985
Roma via Torrevecchia. 3/F 06/333823
- Telex Jetsel 620418
Milano via Nino Bixio, 34 - 02/2043329
INFORMATICA
^ h d
j,' hardware
software
HARDWARE
- OLIVETTI M24, IBM,
APPLE, ADUN,
DATA GENERAL
- compatibili IBM
- assistenza tecnica
SOFTWARE
- ampia disponibilità
programmi pronti
- Personalizzazione
programmi
MODEM
con telefono integrato per
tutti i computers su normali
linee telefoniche come un
normale telefono alla velo-
cità di 300/1200 baud tra:
computer - computer
host - terminale
computer - banca dati
portatile - host
MODEMPHONE
un telefono per il vostro computer
LA NOVITÀ L’OFFERTA
del mese
Condizioni interessanti
per grossisti e rivenditori
y r »
Musica sul 64: libro + cassetta
Un nuovo libro elettronico, ovvero corredato
di programmi per il computer, è stato realizzato
dalla Enda per conto delle Edizioni Beatrice
d'Este. che fa parte della Arti Grafiche Ricordi.
L'opera, che si intitola 'Musica elettronica con il
Commodore 64'. è stata inserita nella collana 'Il
computer insegna' distribuita al pubblico trami-
te le edicole. 11 lavoro prende spunto dai corsi
sulla musica elettronica che il musicista Franco
Fabbri ha tenuto, e tiene tuttora, al Ccpam di
Reggio Emilia: la scelta del Commodore 64 è
praticamente obbligata, trattandosi dell'home
computer con il miglior sintetizzatore musicale
su chip singolo presente sul mercato (si pensi
solo alle possibilità di filtraggio), il S1D 658 1 . La
cassetta contiene una ventina di programmi so-
stanzialmente in Basic, assolutamente non pro-
tetti e quindi facilmente accessibili per modifi-
che personalizzate. Sia il testo che i programmi
sono sia un tutorial per il principiante che un
perfezionamento per il conoscitore. 11 prezzo é
stato contenuto in 10.000 lire.
Franco Fabbri ha maturato una solida espe-
rienza musicale: ha infatti fatto parte del gruppo
rock degli Stormy Six dal 1966 al 1982. Negli
ultimi anni ha collaborato a progetti musicali
con esponenti dell'avanguardia americana, in-
glese c tedesca. Di recente ha iniziato a lavorare
usando il 64 come scqucncer e l'Apple II come
Music System: da più di un anno tiene i citati
corsi al Ccpam.
Nixdorf:
continua l’ascesa dell’M7
A sette mesi dal lancio sul mercato italiano, il
più piccolo dei microcomputer della Nixdorf.
I'M7, ha largamente superalo le aspettative
commerciali: a novembre '84 gli impegni di
vendita erano oltre 500.
Queste cifre hanno fatto della rete commer-
ciale indiretta che c gestita dal doti. Sergio
Frantoiini — il maggior successo europeo per le
vendite di questo prodotto: ciò a conferma della
scelta operala dalla casa madre, che ha usato
l'Italia come paese pilota. Ira i quaranta in cui la
Nixdorf distribuisce i propri computer, nella
sperimentazione della vendila indiretta attra-
verso rivenditori e concessionari.
Dietro al successo si trova anche l'attenta e
soprattutto stabile politica dei prezzi, e la conti-
nuità nel fornire hardware di base e periferiche
standard altamente professionali.
Per ulteriori informazioni
Nixdorf Computer .
l'ia Piranexi 46, 20137 Milano.
Trans Express e
Music Typewriter per Spectrum
Ecco due nuovi titoli per lo Spectrum 48K.
che vanno ad aggiungersi alla marca di pro-
grammi esistenti per il popolarissimo computer
della Sinclair.
Trans Express è un programma di back up.
che si distingue dai tanti copiatori in commercio
per l'ampia scelta di opzioni: oltre al classico
trasferimento del programma da nastro a nastro
c infatti possibile anche quello da nastro a mi-
crodrive (e viceversa) e da microdrivc a micro-
Music Typewriter. come dice lo stesso nome,
permette di scrivere brani musicali, con la nota-
zione standard, direttamente sullo schermo: i
brani possono essere poi riascoltati ed editali
con estrema facilità. Il programma esiste anche
in una versione in grado di pilotare, al posto
dcll'altoparlantino interno, un generatore sono-
ro a più voci o addirittura un sintetizzatore mu-
nito di interfaccia MIDI.
Entrambi i programmi sono prodotti dalla
Romantic Robot, una ditta inglese presentatasi
da poco sul mercato.
Sia Trans Express che Music Typewriter co-
stano 9.95 sterline e sono forniti su nastro; il
primo programma può essere richiesto anche su
microcartuccia al costo di 14,95 sterline. È pos-
sibile effettuare ordini dall'estero aggiungendo
una sterlina per le spese di spedizione.
Ronunuk Robin
113 Melrose Arenile, fondini NU'2 t UH > MC
MCmlcrocomputer n. 38 - febbraio 1985
-Lcippkz è leader.
BIT COMPUTERS - Roma, via Flavio Domiziano 10 - tei. 06.5126700
Roma, via F. Satolli 55/57/S9 - tei. 06.6386096
Roma, viale Jonio 333/335 - tei. 06.8170632
Roma, via Nemorense 14/16 - tei. 06.858296
Roma, via Tuscolana 350/350a - tei. 06.7943980
COMPUTER CENTER - Genova, via San Vincenzo 109/R - tei. 010.581474
DELTRON - Milano, viale Gran Sasso 50 - tei. 02.2360015
IRET - Parma, via Cavallotti 3 - tei. 0521.207274
Modena, c.so Canal Grande 29 - tei. 059.241043
Sassuolo, via Pretorio 65 - tei. 0536.883843
Carpi, via Berengario 58 - tei. 059.685252 ;
Reggio Emilia, via Emilia S. Stefano 32 - tei. 0522.40415
IRPE - Varese, via dei Caranlani 1 - tei. 0332.238533
SERCOM - Bologna, via Berengario da Carpi 9b ■ tei. 051.441352
SIEL INFORMATICA - Catania, piazza Galatea 2 - tei. 095.375222
SISTEDA - Torrette (Ancona), via Velino 5 - tei. 071.880773
SOLUZIONI EDP - Firenze, corso dei Tintori 39/R - tei 055.245220
sono i leaders Apple.
Tutti in Computernet.
associazione nazionale rivenditori personal computers
...dove il cliente diventa leader.
COMPUTERNET - Sede sociale: 00144 Roma, via G. Gastaldi 33- tei. 06.5208447
mori
KVhlKK
Il computer biologico
Uno dei più grandi sogni dell'uomo è, dai tempi più remoti, quello di
creare un essere a sua immagine. Con l’avvento dell'intelligenza artificiale
si comincia a simulare il ragionamento umano, ma l'hardware per la
realizzazione pratica di un cervello è ancora ben lungi dalle nostre possi-
bilità tecnologiche. Alcuni fisici c chimici lavorano ad un'idea di proces-
sore biologico che potrebbe riprodurre efficacemente le capacità cerebrali
utilizzando dei materiali organici. L'articolo che segue, tratto da un
dossier di Claire Remy. ri fornisce degli interessanti chiarimenti sull'argo-
mento.
Il ventesimo secolo ha portato alla scoperta dei semiconduttori ed allo
sviluppo dei computer basati appunto su questo elemento. Il silicio, uno
dei materiali più impiegati nella fabbricazione dei circuiti integrati, oggi
comincia a cedere il passo ad altri materiali come l'arseniuro di gallio che
presenta delle proprietà più interessanti, tuttavia non senza limiti.
Da un po' di tempo i ricercatori si stanno dedicando allo studio di
materiali che non sono legati alla chimica minerale: si tratta dei materiali
organici e biologici. Da quando la biologia utilizza produttivamente i
progressi dell'informatica — citiamo solo, tra lutti, il trattamento delle
informazioni genetiche, il riconoscimento delle forme, l'ecotomografia.
la risonanza magnetica nucleare, ecc. — a sua volta la biologia ha
comincialo ad apportare dei contributi all'informatica fornendole nuovi
materiali, modelli circuitali e processi quali la conduzione dei circuiti
nervosi. Già da una ventina di anni alcuni fisici americani hanno suggeri-
to che la struttura molecolare dei sistemi biologici potrebbe funzionare
come un semiconduttore. Si ha infatti modo di distinguere tre tipi di
materiali fondamentali a seconda della loro conduttività e precisamente: i
conduttori (metalli), i semiconduttori e gli isolanti. La maggior pane dei
materiali organici può essere classificata nella terza categoria e ciò signifi-
ca che la loro conduttività c inferiore a IO (ohm x cm): ad esempio le
plastiche sono particolarmente rinomate per le loro proprietà isolanti e lo
stesso si può dire dei cristalli molecolari (ad esempio la naftalina) e dei
polimeri. Dato che la proprietà di essere isolanti c data dalla mancanza di
cariche mobili sotto l'azione di un campo elettrico, il drogaggio mediante
un certo tipo di impurità rende conduttrici alcune molecole organiche. In
questo modo, i metalli e i semiconduttori minerali non hanno più l'esclu-
sività della conduzione elettrica ed anche le plastiche possono venire a
concorrere in questo dominio privilegiato.
Quando degli ioni positivi o negativi droganti penetrano nella struttura
dei polimeri organici, questi possono vedere la loro conduttività aumen-
tala di un fattore dell'ordine del miliardo. Già dal 1977 un'equipe di
chimici americani c giapponesi ha mostrato che il poliacetilcnc poteva
acquisire una conduttività inferiore di solo 500 volte a quella del rame e
perdi più. secondo G.B. Street del centro IBM di San José (Stati Uniti), la
conduttività di certi polimeri può essere regolata, modificando il drogag-
gio c altri fattori (quali la temperatura o il campo magnetico), dallo stalo
isolante a quello conduttore, passando attraverso lo stato semicondutto-
re, spazzando circa dodici ordini di grandezza.
Il drogaggio dei semiconduttori minerali quali il silicio, il germanio c
l'arseniuro di gallio viene effettuato ad aita temperatura sostituendo a
qualche atomo del cristallo delle impurità elettropositive o elettronegati-
ve. Per rendere conduttore un polimero quale il poliacetilene bisogna
fornirgli una concentrazione di drogante in una percentuale che va dal 3"„
al 5% e per ottenere tali valori, senza che le qualità fisico-chimiche e
meccaniche della molecola si degradino, bisogna procedere contempora-
neamente sia al drogaggio che alla sintesi del polimero. Delle prove,
effettuale nei laboratori CNRS di fotochimica solare a Thiais, hanno
permesso di conferire ai polimeri una conduttività di tipo metallico,
Fin'ora le molecole organiche non offrono dei reali vantaggi rispetto ai
conduttori e semiconduttori minerali in elettronica ma, se si considera la
conduttività per unità di massa, la bilancia può pendere dalla parte dei
polimeri conduttori. Nel 1911 fu messo in evidenza da Kamerlingh Onnes
che alcuni conduttori portali a temperature prossime allo zero assoluto
(-273.15” C) annullano la loro resistenza elettrica e divengono supercon-
duttori. Questa proprietà si applica ad un gran numero di metalli, ma la
temperatura critica per la soglia della superconduttività varia a seconda
dei materiali. Essa è generalmente dell'ordine di qualche grado Kelvin (7
per il piombo. 4 per il mercurio) e per raggiungere delle temperature cosi
basse bisogna raffreddare i materiali con dell'elio liquido e allora l'ener-
gia che bisogna spendere per raggiungere tali temperature è talmente
elevata da limitare le applicazioni per usi industriali ed informatici in
particolare.
Un'equipe del laboratorio di fisica dello stato solido del CNRS in
collaborazione con dei chimici danesi ha scoperto che alcuni materiali
organici presentano delle caratteristiche di superconduttività ottenute
sperimentalmente intorno alla temperatura di I grado Kelvin, temperatu-
ra certo più bassa della soglia di superconduzione dei metalli, ma di
contro, teoricamente, i materiali organici potrebbero avere una tempera-
tura critica nettamente più elevata di quella dei metalli più favorevoli: tale
fenomeno è intrinsecamente legato alia natura del fenomeno della super-
conduttività. Ricordiamo clic — secondo la teoria di Bardeen. Cooper c
Sehrieffer ( 1957) — in seno ad un conduttore portato ad un temperatura
inferiore a quella critica si formano delle coppie di elettroni dette "coppie
di Cooper" che si spostano in modo coerente sotto l'azione di un campo
elettrico: la stabilità di queste coppie c assicurata solo alle basse tempera-
ture perché, al di là da esse, le coppie verrebbero separate dall'agitazione
termica. In base a questi fatti si c scoperto che la superconduttività nei
materiali organici sarebbe di altra natura. Secondo W.A. Little dell'Uni-
versità americana di Stanford, un superconduttore potrebbe essere fab-
bricato a partire da una catena di molecole. Una schiera di atomi di
carbonio agirebbe come una sorta di corridoio di conduzione per le
coppie di Cooper: le molecole di idrocarburi che si trovano da entrambe le
parti potrebbero essere polarizzate in modo da far acquistare ad alcune di
esse una carica positiva ed ad altre una cariai negativa. Ora. un elettrone
passante nel corridoio di atomi di carbonio respingerebbe gli elettroni
esterni delle molecole degli idrocarburi creando una regione a carica
positiva nelle vicinanze del corridoio. Un secondo elettrone che si trovas-
se a passare nei corridoio verrebbe allora attratto dalla carica positiva e
subirebbe un'attrazione indiretta verso il primo elettrone. Little dimostra
che in un tale modello il fenomeno della superconduttività potrebbe
esistere a temperatura ambiente ed anticipa valori di temperature critiche
elevati oltre alla tendenza a formare delle coppie di Cooper accresciuta
circa di un fattore 300.
Benché non si abbiano ancora delle prove concrete di questo l'alto,
l'interesse ai conduttori organici non c affatto diminuito. 1 ricercatori
cercano di sintetizzare dei cristalli molecolari possedenti delle proprietà
conduttrici particolarmente favorevoli considerando che la temperatura
critica dipende dalla anisotropia dei materiali. Dato che i conduttori
organici usuali sono quasi unidimensionali (la temperatura critica é nulla
in caso di unidimcnsionalità assoluta) una struttura formata da molecole-
piane a base di carbonio, zolfo o selenio può presentare delle proprietà
interessanti. In particolare, in alcuni conduttori organici sintetizzati a
Copenhaghen. la conduzione è più elevata lungo l'asse longitudinale che
su quello trasversale e lo stesso materiale diviene superconduttore a 0.9
Kelvin ed a una pressione di lOKbar. T uttavia l'equipe di Orsay ha messo
in evidenza dei fenomeni di superconduzione a temperature di 40 Kelvin:
é il fenomeno della paraconduzione. Questo fenomeno si produce nei
metalli a temperatura prossima a quella critica mentre nei supercondutto-
ri unidimensionali la paraconduzione é amplificata. Questo fenomeno si
spiega per mezzo della presenza di coppie di elettroni che esisterebbero
solamente per un tempo molto corto tuttavia sufficiente a partecipare alla
conduzione. Si possono allora sperare delle temperature di supercondut-
tività a 20, 30 Kelvin in futuri superconduttori organici.
La superconduttività interessa soprattutto nei circuiti elettrici perché
permette di evitare completamente il riscaldamento e quindi di realizzare
circuiti più densi. I superconduttori organici leveranno il principale osta-
colo all'industrializzazione dei circuiti ad effetto Joscphson che é rappre-
sentato dal costo proibitivo del raffreddamento ottenuto per mezzo
dell'elio liquido.
Qualcosa bisogna dire anche sulla optoelettronica organica. Prcmettia-
16
MCmicrocomputer ri. 38 - febbraio 1985
mo che un'altra importante proprietà dei cristalli molecolari organici è la
non linearità. La storia dell'ottica non lineare è cominciala circa venticin-
que anni fa quando un'equipe dell'Università del Michigan ha scoperto
che illuminando un cristallo di quarzo con un laser a rubino si poteva
rilevare in uscita dal cristallo, oltre al fascio trasmesso, una radiazione
ultravioletta di cui la lunghezza d'onda era esattamente la metà di quella
del laser: la frequenza di una piccola parte del raggio era stata duplicata
durante l'attraversamento del quarzo a causa di una proprietà legata alla
non linearità dell'elemento, la suscettività non lineare. Teorie quantisti-
che mostrano che. per essere fortemente lineari, i materiali devono posse-
dere delle caratteristiche fisico-chimiche c strutturali che si possono ritro-
vare appunto in alcune molecole organiche. In pratica, i cristalli moleco-
lari presentano delle forze interne molto intense, responsabili delle pro-
prietà ottiche, ed altre che assicurano la coesione dclfcdiftcio cristallino:
per ottenere delle buone proprietà di non linearità si potranno avere a
disposizione moltissimi materiali ottenuti solamente variando la compo-
sizione chimica.
Le ricerche sono comunque soprattutto orientate verso l'integrazione
su larghissima scala. Con i semiconduttori usuali, usando tecniche sofisti-
catissime. siamo arrivati quasi al limite della possibile integrazione. Ora,
questi limiti potrebbero essere superati di gran lunga dai materiali organi-
ci che permettono, teoricamente, dei circuiti circa mille volte più densi di
quelli realizzati fin’ora. Inoltre alcune molecole sono sensibili alle varia-
zioni esterne: un cambiamento della pressione o del campo magnetico
induce una variazione della conducibilità. Si può perfino passare dallo
stalo isolante a quello metallico e tale passaggio è reversibile! Ciò porta
alla possibilità di realizzare degli elementi bistabili (flip flop) che. in
quanto tali, possono avere un posto di rilievo nei circuiti elettronici. Con
gli stessi materiali è possibile realizzare anche porte logiche. Per il cablag-
gio e le connessioni dei vari elementi sarebbero utilizzati dei polimeri
unidimensionali come dei fili molecolari. Per la realizzazione pratica dei
circuiti possono essere impiegate o le tecniche usuali oppure altre che
consistono ncll'irradiare le molecole organiche con un fascio laser il quale
produrrebbe delle modificazioni irreversibili della struttura interna dovu-
te alla rottura di alcuni legami. In tal modo è abbastanza semplice creare
delle zone Isolanti ed altre conduttrici.
In queste condizioni, l'unità centrale e la memoria centrale di un
computer del futuro potrebbero avere il volume di un centimetro cubo,
montati su un circuito di refrigerazione ad elio liquido c provvisti di
interfacce ottiche che metterebbero a profitto quanto già visto.
Ma non è finita qui! Un nuovo approccio consiste nell'impiegare
l'ingegneria genetica e la biotecnologia per fabbricare dei computer che
sfrutterebbero la tendenza naturale dei sistemi biologici ad autoorganiz-
zarsi: il DNA comanda i processi per i quali le cellule si riproducono fino
alla determinazione della composizione del tessuto vivente. Sfruttando
tale proprietà si potrebbero produrre componenti per computer di una
potenza inimmaginabile, in un tempo molto più breve del consueto e con
minor rischio di difetti di fabbricazione. Potrebbero cosi essere messe a
profitto le proprietà delle macromolecole biologiche di assemblarsi in
ultramicrocircuiti molecolari tridimensionali, utilizzanti l'informazione
interna dei biopolimeri. Queste "pulci biologiche" cosi ottenute avrebbe-
ro una densità di componenti di circa dicci miliardi per millimetro cubo!
“È probabile — dice un ricercatore di Rockville (Maryland, Stati
Uniti) — che presto potremo fare su misura le proteine, che saranno alla
base dei composti organici, con le proprietà elettroniche richieste".
Da li a connettere direttamente le "biopulci" al cervello umano c
realizzare un'interfaccia uomo macchina il passo è breve...
TP.
MCmicrocompuler n. 38 - febbraio 1985
17
Ama il meglio!
32K ROM 80K RAM
Tastiera professionale a 90 tasti
Porte per monitor, TV, joisticks,
floppy disk,
cassette recorder, stampante, giochi.
Interfaccia stampante parallela
Centronics incorporata
SVI
SPECTRAVIDEO
il computer del grande standard MSX
Distributore per l'Italia
COMTRAD
Divisione Computerà
Tel. (0586) 424348 TLX 623481 COMTRD I
Dizionario del BASIC
di David A. Lien
Edizioni E.P.S.I. 19X4
Distribuzione: ET MI
Via Basilicata
201198 S. Giuliano Milanese (MI)
436 pagine, 40.000 lire
Fra i lami libri che riguardano il Basic questo
è certamente uno dei più strani: il suo titolo non
é metaforico, si tratta veramente di un diziona-
rio del linguaggio Basic. Prima o poi doveva
succedere: se il Basic è un "linguaggio" allora
perché non raccogliere tutte le sue "parole" in
un "vocabolario"? E questo c precisamente ciò
che ha fatto l'autore: ha preso tutti i comandi e le
istruzioni dei più dilTusi Basic in circolazione
(dichiarate circa cinquecento parole di duecento
macchine), le ha messe in ordine alfabetico, le ha
dotate ognuna di un commento, una spiegazio-
ne e di uno o più brevi esempi di uso. ed ecco
fatto il dizionario.
Ad ogni parola viene dedicata almeno una
pagina, nella quale sono riportate, oltre al signi-
ficato ed al commento, diverse informazioni uti-
li: un breve programma di prova (serve per con-
trollare che il proprio calcolatore riconosca ed
esegua correttamente l'istruzione in questione),
eventuali modi alternativi di ottenere la stessa
funzione nel caso in cui il Basic in uso non
preveda l'istruzione stessa, eventuali "sinonimi"
(parole diverse ma dallo stesso significato, ap-
partenenti ad altri "dialetti" Basic), c perfino
eventuali significati differenti della stessa parola
in altri dialetti. Viene inoltre segnalata esplicita-
mente l'eventuale conformità dell'istruzione al-
lo standard ANSI.
Precede l'opera una breve introduzione che
spiega scopi c portata del libro e fornisce alcuni
consigli su come effettuare la traduzione di un
programma da un Basic ad un altro. Già. perchè
questo libro (c'é bisogno di dirlo?) si rivolge
essenzialmente a chi per qualsiasi necessità si
trovi a dover tradurre e/o adattare programmi
scritti in dialetti Basic differenti da quello dispo-
nibile c quindi a programmatori/installatori di
professione, più che ai programmatori occasio-
nali. In effetti il dizionario costituisce, in un
certo senso, una guida di riferimento di lutti i
principali Basic in circolazione, c quindi permet-
MCmicrocompuler n. 38 - febbraio 1985
le di sciogliere eventuali dubbi sul significato di
quelle istruzioni strane dal significato oscuro
che... non mancano mai in qualunque program-
ma scritto per una macchina diversa dalla no-
Chiudono l'opera quattro brevi "sezioni spe-
ciali" che si occupano più da vicino dei Basic
disponibili su Acorn Alom. Atari 400 e 800.
TRS-80 Color e sulle Workstation grafiche Tek-
tronix serie 4050. Seguono infine una succintis-
sima panoramica delle istruzioni di I/O su di-
schetto (non presenti nel dizionario vero e pro-
prio in quanto assolutamente non standardizza-
te e quindi non catalogabili) ed una tabella col
codice ASCII.
La cura posta nella redazione italiana del te-
sto ci sembra buona, anche se qua c là compaio-
no periodi un po' distorti, segno di una traduzio-
ne troppo letterale dall'originale inglese. Mollo
apprezzabile invece il fatto che tutti i program-
mai di esempio abbiano i messaggi tradotti in
italiano. La mancanza degli indici, generale ed
analitico, è meno grave di quanto si potrebbe
pensare, data la particolare natura del testo. Più
limitante ci sembra invece l'assenza di parole
appartenenti ai dialetti Commodore c Sinclair,
data la grande diffusione di queste macchine; ciò
c dovuto alla relativa anzianità del testo, uscito
negli USA nel 1981 (come seconda edizione am-
pliata: la prima edizione risale al 1978).
Comunque non possiamo che parlare bene di
questo libro; crediamo che meriti un posto nella
biblioteca di chiunque si occupi di programma-
zione in Basic in modo più che superficiale, spe-
cie se con frequenti necessità di conversioni da
altre macchine. Il prezzo c alto in assoluto, ma
giustificato alla luce della qualità; c comunque
accettabile per un libro di chiara natura "di
lavoro" più che hobbystica.
Corrado Giustozzi
The Power Of: Cale Result
di Robert E. Williams
P rem ice- Hai I International
Distributore italiano:
Flavio Marcello,
Via Vicenza 27b, 35100 Padova
192 pg 23x15 citi
Prima Edizione: 1983
Un package complesso come il Cale Result,
che gestisce su disco 32 grandi pagine (da 254x63
clementi), non è certo il modo più semplice per
entrare nel mondo dell'Informatica domestica e
personale. Ciò nonostante moltissime persone
trarrebbero enorme beneficio dalla registrazio-
ne elettronica ed automatica delle loro contabi-
lità. consentendo una facile archiviazione, una
facile ricerca ed un'immediata pianificazione dei
prossimi impegni.
Serve dunque un programma come il Cale
Result: ma nè il manuale, né gli schermi di help
possono bastare, se non ci si mette un po' d'espe-
rienza: questa é offerta dal volume "The Power
Of: Cale Result". che attraverso una serie di
esempi — redatti passo passo in maniera chiaris-
sima, e ricchi di esempi c suggerimenti mostra
nella pratica come gestire costi, magazzini, fi-
nanziamenti. piani d'ammortamento, inventari,
libri cassa, eie., con dieci esercizi che compren-
dono l'uscita grafica, la stampa, il salvataggio
(normale e secondo lo standard dei DIF file) e
persino la procedura per richiamare i file appena
registrati su disco.
La nota che appare nella pagina dell'intesta-
zione contiene una lieve inesattezza. Come spie-
gato nella prova, pubblicata in questo stesso
numero, del Cale Result esistono due versioni,
una più semplice (che usa anche la cassetta) e
una più articolata (che va solo su disco): i dieci
esercizi si riferiscono alla sola versione avanza-
ta. c non ad entrambe. I cambiamenti da effet-
tuare sono comunque minimi.
La Prenticc-Hall è originaria del New Jersey,
negli USA. e quindi anche le tabelle e le varie
procedure si riferiscono al sistema tributario a-
mericano: anche in questo caso, comunque, il
maggior carico dell'utente non comporta ulte-
riori difficoltà, anche se allunga leggermente il
tempo di apprendimento.
In chiusura, una nota: questo libro fa parte
della serie "The Power OF. che si rivolge a Pack-
age notissimi come Visicalc (3 volumi), Visi-
plot. Supercalc, Multiplan(2 voli). Lotus 1-2-3
(2 voli) c Logo Turile, spesso disponibili anche
direttamente su dischetto.
Leo Sorge
Vademecum per Applesoft
di Claudy Galais
Edizioni E.P.S.I
Distribuzione: ET MI
Via Basilicata
20098 S. Giuliano Milanese (MI)
Milano - 1984
Formato tascabile:
11.5 x 16 J x l.l cm
170 pagine, 12.000 lire
Chi può dire con sicurezza di conoscere tutti i
comandi del proprio computer, con la relativa
sintassi, c chi, pur essendo sicuro della sintassi,
non si é trovato, almeno una volta, a combattere
con un comando che non faceva quello che a-
vrebbe dovuto fare?
La ricerca sul manuale originale spesso si rive-
la disagevole in quanto i comandi sono raggrup-
pati per funzione e a volte (c il caso del manuale
Applesoft originale) lo stesso comando appare
in più parti del manuale e ogni volta che compa-
re viene aggiunta qualche caratteristica o qual-
19
che avvertimento. Utilissimo in questi casi il
Vademecum; un manuale "alternativo" con tut-
ti i comandi del Basic e quelli del Dos. in ordine
alfabetico e uno per pagina. La ricerca di un
qualsiasi comando e praticamente immediata e
il suo utilizzo è semplificato da un programmino
di prova in cui viene applicato il comando stcs-
Un piccolo difetto del manuale è la mancanza
della sintassi del comando che deve perciò essere
ricavata dall'esempio. L'aggiunta di qualche ta-
bella. tipo quella delle locazioni speciali (alto-
parlante. tastiera, pulsanti ecc.) e quella del co-
dice numerico degli errori (utili per l'uso della
istruzione ON ERR) avrebbe reso praticamente
perfetto questo manuale (volendo si possono
scrivere nelle ultime tre pagine che sono bian-
che).
Il praticissimo formato tascabile, che non ru-
ba spazio ai sempre affollati posti di lavoro, la
cura posta nel testo e nella stesura dei program-
mi ed un prezzo decisamente abbordabile, ne
fanno un acquisto indispensabile per chi usa
l'Apple per programmare o per chi voglia ap-
prendere meglio il funzionamento del Basic sen-
za dover imparare a memoria il manuale origi-
nale.
Valter Di Dia
Imparate il linguaggio
dell'Apple
Don c Kurt Inman
Franco Muzzio «fi C. Editori
Via Mukallé 73 - 35138 Padova
Padova - 1982
340 pagine. 15.000 lire
Contrariamente a quanto si possa immagina-
re dal titolo, questo non c un libro di Basic. Per
linguaggio dell'Apple si intende infatti il lin-
guaggio del suo microprocessore, il 6502, ma in
ambiente Apple. Un libro quindi sul linguaggio
macchina e sul Monitor (il mini sistema operati-
vo dell'Apple).
Dopo un brevissimo capitolo sul Basic Apple-
soft. poco più di un elenco dei principali coman-
di, un capitolo dal significativo titolo ‘passiamo
il ponte' introduce al linguaggio macchina. Il
ponte immaginario è quello che divide il Basic, e
quindi la logica decimale c l'aritmetica a noi più
familiare, dalla logica bolcana e l'aritmetica bi-
naria indispensabile per parlare direttamente al
microprocessore dell'Apple.
La semplicità di esposizione, il gran numero
di illustrazioni e gli esempi via via più complessi,
rendono l'apprendimento di questa materia, ini-
zialmente sempre un po' dura, estremamente
affascinante, e il lettore viene portato a pro-
grammare dei giochini in linguaggio macchina
senza essersi quasi accorto di aver fatto una gran
quantità di lavoro e aver appreso un gran nume-
ro di nozioni su questo nuovo ambiente di tavo-
li linguaggio macchina apre ovviamente una
nuova dimensione alle possibilità della macchi-
na che. da poco più di un giocattolo, si trasfor-
ma improvvisamente in un mostro dalle poten-
zialità impressionanti. Basti pensare che se un
ciclo FOR...NEXT fino a 1000 impiega in Basic
I secondo, lo stesso ciclo in linguaggio macchina
dura poco più di 4 millesimi di secondo.
Una appendice con tutte le tabelle necessarie
al linguaggio macchina, compresa quella delle
principali subroutine del Monitor, completa
quest'opera molto utile per chi. insoddisfatto
del Basic, voglia estendere le proprie capacità di
programmatore. La veste editoriale è mollo cu-
rala e il prezzo decisamente inferiore al valore
del testo.
Valter Di Dio
C 64: Machine Language
for thè Absolute Beginner
di Danny Davis
Edizioni Melborne House. Church Yard
Tring. Hertfordshire. HP23 5LU. GB
201) pagine - 14x21 cm circa
Data di pubblicazione: 1984
6.95 sterline
Si parla sempre più di microprocessori, e il
linguaggio macchina è il modo migliore per
sfruttare appieno le potenzialità loro e dell'hard-
ware che sta loro intorno in un home computer.
La Melbourne House, che i nostri lettori cono-
scono benissimo sia per i giochi che per i libri,
porta in tutto il mondo i prodotti di varie case,
tra cui la Bcam Software, la quale ha preparalo
questo prontuario sull'uso dei 6510 nel contesto
del C 64. Le 200 pagine sono suddivise in due
parti eguali: la prima espone gli argomenti, la
seconda funge da guida di riferimento. In que-
sl'ultima troviamo non solo una completa tabu-
lazione di tutte le istruzioni del 6510 con la
spiegazione sull'uso e i relativi effetti sui flag. ma
anche una mappa di memoria per indirizzi (le
routine sia del Basic che del sistema operativo) e
le mappe dei registri degli altri 4 circuiti integrati
VLSI del computer, il SID 6581 per il suono, i
CIA 6526 per comunicare con le periferiche (ta-
stiera. porta utente, disco...) c il VIC 6567 per lo
schermo.
Venendo al testo in sé. é organizzato in 12
capitoli che trattano il pieno uso del micropro-
cessore. ma con due differenze rispetto ad una
guida di riferimento: si parte da zero — o, al più.
dalle conclusioni dell'ultimo capitolo - e gli
esempi riguardano le particolarità del C 64
(muovere le sprite. portare in RAM il set di
caratteri, etc.).
Va citato a parte il capitolo 1 2. che brevemen-
te mostra all'utente come sfruttare il sistema
operativo per propri scopi.
Le nozioni introduttive, come l'aritmetica bi-
naria. vengono introdotte talvolta nel corso del
lesiti, talvolta in appositi capitoli. Quando si usa
il LM è praticamente indispensabile un pro-
gramma che faciliti la creazione c il controllo del
lavoro, e ci permetta di immagazzinare su cas-
setta dati c programmi, per poi richiamarli.
Questo libro, in una delle appendici, pubblica
il listalo di ALPA - Asscmbly Language Pro-
gramming Aid. ovvero aiuto alla programma-
zione in LM - che dovrebbe risolvere i vostri
problemi: il listato é "trattato"' per minimizzare
gli errori di interpretazione (ma ciò potrebbe
portare ad errori di stampa), e termina con una
sezione che, con l'aiuto del libro stesso, vi aiuta a
trovare gli errori di digitazione.
Purtroppo il testo non cita la possibilità di
acquistare separatamente una cassetta con AL-
PA. cosa che ne faciliterebbe di molto l'uso (ma
non il portafogli!).
Il tutto é scritto in ottimo inglese.che associa
20
MCmicrocomputer n. 38 - febbraio 1985
la precisione della lingua Iconica senza assorbir-
ne la monotonia. Il prezzo, rissato in sole 6,95
sterline, ovvero meno di 17000 lire, è davvero
basso per la qualità mostrata e l'utilità che ne
consegue al novello programmatore in LM.
Leo Sorge
CP/M passo dopo passo
di Alain Pinaud
Edizioni E.P.S.I. Milano
Distribuzione: ETMI
Eia Basilicata
21)098 S. Giuliano Milanese ( MI )
Pagine: 128 - Formato 17x24
Lire 13.000
Ecco una guida pratica dedicata al sistema
operativo CP/M. presente ormai in tutti quei
personal computer dolati del microprocessore
Z80: c un libro molto scorrevole e simpatico per
il modo con cui vengono trattatti argomenti
anche complicati. Già daU'introduzione. i "neo-
fiti" dell'argomento trarranno un sospiro di sol-
lievo. in quanto c subito specificato che le varie
tematiche verranno affrontate gradualmente a
partire dai cenni storici sul CP/M fino alla strut-
tura dei file su disco.
Il metodo prescelto dall'autore per spiegare i
vari argomenti consiste nel presentare, per ogni
capitolo, un numero notevole di output forniti
direttamente da un computer, sui quali effettua
le debite considerazioni, indicando volta per
volta le possibili varianti, stimolando diretta-
mente il lettore con frasi del genere: "provate
ora a digitare... e vedrete cosa succede".
Abbiamo parlato dei cenni storici: nel primo
capitolo sono inoltre presenti altre note intro-
duttive quali le caratteristiche del personal com-
puter generico e della "posizione che occupa" il
CP/M. non solo fisicamente in memoria, ma
come supervisore di tutte le operazioni che vo-
gliamo compiere.
Nel secondo capitolo viene gettato uno sguar-
do abbastanza approfondito sui tipi di file previ-
sti dal CP/M e sui caratteri di controllo imposta-
bili da console.
Il terzo capitolo, che rappresenta praticamen-
te i due terzi del libro, tratta in dettaglio ognuno
di quei programmi di sistema, ben noti ai lettori,
ma che qua c là presentano sempre delle caratte-
ristiche dimenticate o sconosciute. Ecco che tro-
viamo. DIR. USER. STAT. REN. TYPE. PIP.
ERA. DUMP. SUBMIT. fino ad arrivare
all' ASM. al DDT. al MOVCPM ed al SY-
SGEN.
Per chiarire ancora meglio alcuni concetti re-
lativi all'ASM ed al DDT. viene proposto un
programma in linguaggio macchina che il letto-
re può seguire dal momento in cui lo edita (pur-
troppo con l’ED. che ormai quasi nessuno usa.
dato che in questo campo regna il Wordstar),
fino alla sua esecuzione, passando attraverso
l'assembler ASM e verificandone la correttezza
(correggendo eventuali errori) tramite il DDT.
Nel quarto capitolo, invece, si trovano alcune
ulteriori informazioni (che in un primo tempo
non erano strettamente necessarie) sui tre pro-
grammi ED (ancora lui!). PIP e DDT.
Strano che l'autore non parli né del Wordstar
ne dello ZSID. un miglioramento del DDT. spe-
cializzalo per lo Z80. dal momento che quasi
tutti i personal dolati di CP/M vengono ormai
dotati di tali programmi.
Terminato questo capitolo, che come detto c
alquanto più difficile degli altri, ecco dunque le
appendici con una ricca dotazione di tahelle. di
rapida ed utilissima consultazione: si va dall'as-
segnazione della memoria di un sistema dotato
di CP/M. al significalo delflOBYTE alle rouli-
Imparate il Basic
con VIBM
Personal Computer
David A. Lieti
di testi tecnici:
ilei suoi titoli sono state
fendute milioni di copie
In questa guida attinge alle
sue risorse di linguaggio e di
esperienza per insegnare il
Basic del PC IBM, uno dei
persona ! computer più
affermati nell'ambito degli
uffici, delle attiviti!
professionali, delle aziende.
muzzio
editore
Se siete interessati a questo
o altri ns. libri, compilate la
cartolina e inviate a Franco
Muzzio Editore - Servizio
Mailing - via Makallè 73 -
35138 Padova.
□ desidero acquistare "Im-
parate il Basic con l'IBM
Personal Computer.
Pagherò al postino L. 26.000
+ L. 1 .000 di spese di spe-
dizione.
□ desidero ricevere il Vo-
stro catalogo generale.
nome
cognome
C.A.P
ne del BDOS. alla struttura del File Control
Block (FCB). per poi giungere all'assemblatore
ASM con le tabelle delle istruzioni dell'8080 e
all'immancabile tabella dei codici ASCII.
Concludiamo questa recensione con la consi-
derazione che il lettore alla fine del libro difficil-
mente non sarà invogliato a saperne di più, po-
tendo però affrontare la lettura ben più difficile
di altri testi sul CP/M. dal momento che già ne
conosce i fondamenti ed i primi segreti.
Pierluigi Piwun: i
32 programmi per il Vie 20
di T.Rugg, P. Feldman. C. S. Wilson
Franco Muzzio & C. Editori
Via Makallè. 73 - 35138 Padova
Lire 18.000
Questo libro c rivolto a chi. dopo aver acqui-
stato un computer ed appreso i primi rudimenti
d'uso, voglia cominciare a toccar con mano la
versatilità e l'utilità della macchina unitamente
alla soddisfazione di veder girare i primi pro-
grammi battuti da se. senza la necessità di una
approfondita conoscenza del Basic. È rivolto
anche a chi. avendo bisogno di risolvere un par-
ticolare problema, non voglia prendersi la briga
di scrivere da solo il programma.
I programmi presentati trattano giochi, appli-
cazioni domestiche, grafica, matematica, stati-
stica ed usi vari e mentre tutti girano su un Vie
con 8K di espansione, per alcuni è sufficiente
una minor quantità di memoria. È senz'altro
inutile menzionare tutti i programmi riportali
nel libro ma è forse il caso di accennare, per
rendere l'idea, a quelli educativi come "Aritme-
tica" che sviluppa dei quesiti di aritmetica ad
uso dei bambini delle elementari, "Numeri" che
insegna a contare ai bambini in età prescolare.
"Flashcard" che aiuta ad allenare la memoria, e
ad altri, situati nella sezione matematica del li-
bro, tra cui ricordiamo "EqdifT' per la risoluzio-
ne di equazioni differenziali lineari di prim'ordi-
ne col metodo di Runge-Kutta. “Sislin" per la
risoluzione di sistemi di equazioni lineari e “In-
tegrale" per il calcolo di integrali semplici con la
regola di Simpson.
Ad ogni programma è dedicalo un capitolo,
diviso in più sezioni c ben documentato, in cui
troviamo una prima parte che spiega lo scopo
del programma c come utilizzarlo insieme ad
alcune schermate dimostrative. In un'apposita
sezione del capitolo vengono suggerite delle pos-
sibili migliorie e delle idee di progetto mentre in
altre è riportala la descrizione delle routine usa-
te c delle variabili principali.
Il libro è mollo chiaro e lineare oltre che nel-
l'esposizione anche nei listati (in cui si utilizzano
metodi alternativi di scrittura per i caratteri gra-
fici Commodore) ed oltre molli spunti ai neofiti
che vogliano cominciare a divertirsi con il com-
Tommaso Paniuso
102 programmi per il
Commodore 64
di Jacques Deconchat
Edizioni E.P.S.I.
Distribuzione: ET MI
20098 S. Giuliano Milanese (MI)
Edizione francese : 1983
Edizione italiana: 1984
230 pgg. da 24x17 etti
Lire 20.000
Il mercato internazionale è inflazionato da
libri che propongono una serie di listati più o
** A Napoli, BYTE COMPUTERS
è la ragione in più per scegliere
f^cippkz computer
Apple Ile * Apple Ile * Macintosh
Completa assistenza hardware e software, corsi e libri •
Offerte promozionali di lancio, credito personale, leasing
BYTE COMPUTERS • Napoli. via G.B. Marino 29 • tel.081.636328
ULTIMI PROGRAMMI REALIZZATI:
primo volume ecco gli ultimi due libri che com-
pletano l'opera.
Il secondo volume. Le estensioni si occupano
soprattutto dei sistemi operativi; si comincia ov-
viamente dal DOS 3.3 che viene esplorato nei
minimi particolari, con ampi programmi di e-
sempio e addirittura un data-base completo.
Dopo il DOS il secondo sistema operativo più
usato sull'Apple, il Pascal U.C.S.D. (University
of California. San Diego). Anche qui studialo
nei dettagli e con vari esempi sull'uso dei file che
sono la parte più ostica del sistema operativo,
soprattutto per chi non è un programmatore
esperto e si trova a disagio con termini quali
Linker o formattcr o altra "roba del genere".
Dopo il Pascal il CP/M naturalmente con
scheda Z80 con un programma di esempio in
MBAS1C per la gestione di una rubrica di indi-
rizzi e un elenco dei linguaggi disponibili sotto
CP/M.
In chiusura un elenco con le principali espan-
meno funzionanti, per il 95% troppo semplici,
privi delle più elementari note di realizzazione e
per di più stampati male o malissimo. Non è
certamente il caso di questo libro della EPSI. il
cui titolo non fa piena luce sui contenuti. Anche
se è evidente che i 102 programmi che occupano
le 230 pagine sono per lo più brevi, il lettore non
è abbandonato a se stesso: il testo è diviso in 5
parti, a difficoltà crescente, ed inoltre ogni pro-
gramma viene commentato nelle sue linee sa-
lienti; di ogni sezione è offerto un quadro rias-
suntivo. ed infine per ogni programma vengono
indicate delle possibili varianti o migliorie.
Lo scopo del libro è di insegnare a farsi i
giochi (in Basic) da soli: cosi nel livello I vedia-
mo in pratica le istruzioni PRINT e INPUT,
IMF... THEN. il FOR... NEXT. i salti (GOTO.
GOSUB) e le verifiche multiple (ON...): nel li-
vello 2 vediamo READ e DATA; nel 3 le funzio-
ni di stringa: nel 4 la GET; nel 5 la PEEK e la
POKE.
La struttura del libro ricalca quella di analo-
ghe opere da tempo apparse per i Pel Commo-
dore e successivamente adattate al VIC e al 64,
per cui non troviamo nessun accenno né al suo-
no né alla grafica in alta risoluzione, nè agli
sprite. cosa questa bene indicata dagli autori
nella prefazione. L'impostazione del lavoro, che
vede solo il Basic standard e un minimo uso delle
POKE, definisce compiutamente il tipo di infor-
mazioni che si possono desumere dalle sue pagi-
ne: chi debba partire dal manuale troverà utili i
1 92 giochi e le note relative, ma per la program-
mazione avanzata bisognerà rivolgersi altrove.
Leo Sorge
Guida per l'Apple
2. le estensioni
3. le applicazioni
di Benoil de Merly
Edizioni E.P.S.I.
Distribuzione : ETMI
l'io Basilicata
20098 S. Giuliano Milanese ( MI I
Edizione 1984
Voi. 2: 174 pagine. 18.000 lire
Voi. 3: 168 pagine. 19.000 lire
Ad appena un mese dalla presentazione del
sioni disponibili per l'Apple, le caratteristiche c
gli impieghi principali.
Il terzo volume di quest'opera si occupa delle
applicazioni, ccon questo termine si vuol inten-
dere il software già pronto esistente per questa
macchina.
Vengono presentati ed esplorati nelle loro
principali caratteristiche e potenzialità i più noti
programmi per ufficio disponibili per l'Apple. Si
comincia dai programmi di Word processi Ap-
ple Writer (il nuovo). Wordstar (sotto CP/M ) ed
altri. Poi si passa ai fogli elettronici: il Visicalc e
il Multiplan. Quindi alla gestione dei file con
l'intramontabile PFS. il Quik File, il CX Mulli-
gestion ed altri non da meno come il Visilile; per
terminare un capitolo sull'uso dell'Apple come
terminale di una rete telematica c uno sull'uso
del programma grafico PFS Graph.
Questo volume più che un manuale d'uso si
può considerare una guida all'acquisto del soft-
ware necessario al proprio lavoro; infatti tutti i
programmi sono presentati in modo da poter
essere facilmente e rapidamente confrontati tra
loro in funzione della facilità di apprendimento
e potenza operativa. Un libro quindi indispensa-
bile per aggirarsi tra la selva di programmi esi-
stenti senza cadere nelle mani dei venditori che
non sempre indirizzano il cliente verso l'acqui-
sto migliore.
Valter Di Dio
MCmicrocomputer n. 38 - febbraio 1985
23
LE NOVITÀ DEL MESE
Programmare in Forth
Autore: Alain Pinaud
Pagine: 160 - Formato: 15x21
Brossura cucita - ISBN 88.7688.210.3
Ut. 14.000
Programmare in Forth è un po' come la-
sciare i linguaggi informatici "terrestri” a
noi familiari e partire per un'altra galassia
Per comprendere questo linguaggio biso-
gna mettersi alla sua porlata, cercando di
fare astrazione il più possibile dalle nozio-
ni apprese con gli altri linguaggi e di aprirsi
a concetti nuovi, spesso di sconcertante
semplicità. Lo scopo di questo libro è non
solo quello di insegnarvi la filosofia di que
sto linguaggio affascinante ma anche di in-
vitarvi a praticarlo. Per questo mettetevi
davanti al vostro computer con installata
una versione del Forth e studiate secondo
il vostro ritmo i diversi capitoli, non trascu-
rando gli esercizi proposti. Sebbene questa
sia prima di tutto un'opera di iniziazione,
è preferibile che il lettore possieda delle no-
zioni generali di programmazione e qual
che rudimento sul linguaggio macchina se
vuol trarre il massimo profitto da certi
sviluppi.
Questo libro "La pratica dell'Apple II" si ri
volge a tutti gli appassionati dell'Apple. È
stato scritto soprattutto alla luce delle po-
tenzialità dell'Apple Ile.
Vi si affronta lo studio dell'unità a dischi
sia dal punto di vista hardware sia da quel-
lo software. Diversi capitoli sono dedicati
al sistema operativo DOS e alla gestione dei
file. Vengono studiati i diversi modelli di
stampati e le diverse modalità di stampa
L'ultimo capitolo è dedicato alla scheda
Apple-Clock.
GIOCHI SUL PHILIPS
VIDEOPAC +
Ut. 20.000
Questo testo presenta un insieme di tecni-
che che illustrano le possibilità delle rea-
lizzazioni grafiche del calcolatore.
Il suo procedimento progressivo permette
al dilettante come al professionista di af-
frontare la risoluzione di problemi sempre
più complessi, (tracciati d'ellisse, rotazio-
ne dei poligoni, tratteggio delle superfici).
I modelli di espressione grafica presenti so-
no scritti in Basic Applesoft. I programmi,
ampiamente commentati, sono facilmen-
te adattabili agli altri calcolatori.
Giochi sul Philips C 7420
Autore: Christophe Bardon, Benoit De
Pagine: 180 - Formato: 15x21
Brossura cucita - ISBN 88.7688.213.8
Ul. 18.000
La consolle di gioco Videopact conosce un
successo notevole. Philips mette ora a di-
sposizione dei possessori di Videopace
l'estensione Basic C7420 che darà loro ac-
cesso al mondo appassionante della pro-
grammazione
Ecco un libro c
principianti. cL
grammi di giochi di lunghez;
Tra questi ricordiamo: il gioco del 21. la
roulette russa, totip, mastermind nel capi
tolo di introduzione al Basic: Blitz e bom
bardiere. giochi di grafica e suono, caccia
al tesoro, tic.tac.toe, radar nei giochi di
riflessione; infine nei giochi di azione: mtl
lepiedi. inseguimento, gli invasori, batta
glia di elicotteri.
La pratica del Commodore 64
3 Linguaggio macchina e assembler del
6502
Autore. Daniel-jean David
Pagine: 204 - Formato: 15x21
Brossura cucita ISBN 88.7688.212.X
Ul. 20.000
Questo libro si rivolge a due fasce di per-
sone. Una prima fascia è formata da que-
gli utenti del Commodore 64 che vogliono
saperne di più sul funzionamento della
macchina e quindi vogliono imparare da
zero il linguaggio assembler: questo libro
sarà per essi una guida utilissima che li
condurrà per mano dai primi passi fino a
programmi di un certo respiro scritti in lin-
guaggio macchina. La seconda fascia è for
mata da coloro che, pur conoscendo
['assembler del Commodore 64, vogliono
approfondire le loro conoscenze sull'inte-
razione tra Basic, sistema operativo e lin-
E uaggio macchina, questo libro sarà per
jro una preziosa fonte di informazioni e
consigli. Allo scopo di facilitare la com-
prensione, sono stati tradotti i commenti
dei programmi e anche il nome delle va-
riabili è stato adeguato a! loro significato
italiano.
mrc'
H Basic per tutti
Iniziazione più programmi
Autori: Jacques Boisgontier. Sophie Brebion
Pagine: 160 Formato: 17x24
Brossura cucita ISBN 88 7688.501.3
Ut. 16.000
Imparate a programmare con il "11 Basic
per tutti" in mano Mettetevi davanti al vo
stro computer (Apple, Commodore 64, TRS
80) e Incominciate a scrivere alcune istru
zioni. Molto rapidamente assimilerete le
nozioni fondamentali della programmazio
ne: variabili, test e loop.
Riuscirete a "comprendere" il computer e
a sapere ciò che ne potrete ricavare. Ma
non è tutto. Grazie ai numerosi esempi il
lustrati e ai programmi commentati acqui
sirete senza difficoltà le basi necessarie ad
approfondire le vostre conoscenze e a seri
vere i vostri programmi di gestione, didat
tici e di giochi.
mi £m, tm mi mi mi m\ mi mi mi fm t mi
Guida per l'Apple
Autore: Benoit De Merly
voi 1 L'Apple standard
Pagine 168 Formato: 15x21
Brossura cucita ISBN 88.7688.205.7
Ut. 17.000
voi. 2 • Le estensioni
Pagine: 170 Formato: 15x21
Brossura cucila - ISBN 88.7688.206.5
Ut. 18.000
voi. 3 - Le applicazioni
Pagine: 194 Formato: 15x21
Brossura cucila - ISBN 88.7688.207 3
Ut. 19.000
Quest'opera si rivolge a lutti coloro che uti-
lizzano un personal computer Apple e si
rivelerà presto indispensabile nella ricer-
ca delle migliori possibilità di questo
personal.
Grazie ai diversi livelli di comprensione si
potranno affrontare in una prima lettura
solo i capitoli semplici, per esempio quelli
sul Basic. Più ne saprete e più avrete voglia
di proseguire. Voi diventerete chi ne sa un
po' di più e comprende meglio e padroneg
già la sua macchina
Argomenti trattati sono: il Basic Apple soft,
possibilità grafiche, sonore e giochi, la pro-
grammazione in assembler del 6502, le
estensioni, il sistema UCSD, la softcard Z-80
CP/M, carte di estensione per l'Apple II. pre-
sentazione delle applicazioni esistenti, il
L'Apple
i suoi files
Metodi pratici
Autore: Jacques Boisgontier
Pagine: 180 - Formato: 15x21
Brossura cucita - ISBN 88.7688.204.9
Ut. 19.000
Per non entrare troppo rapidamente nella
programmazione delle applicazioni che
utilizzano i files. l'opera inizia con una
presentazione concisa e illustrata dei co-
mandi del sistema operativo disco e delle
istruzioni del Basic Applesoft in seguito
vengono descritte le istruzioni dei files se-
quenziali e ad accesso casuale e viene spie-
gato il loro impiego con l'aiuto di pro-
grammi classici di creazione, modifica e
ordinamento di files. abbondantemente
commentati.
Alcuni metodi pratici, spesso poco cono-
sciuti, mostrano come utilizzare al meglio
i files ad accesso casuale, l'accesso indiciz-
zato, l'allocazione dinamica, il codice
ASCII, le liste inverse.
Una ventina di programmi illustrano l'im-
piego di queste tecniche.
Autore: Jacques Boisgontier
Pagine: 127 Formato 17x24
Brossura cucita - ISBN 88.7688.004.6
Ut. 13.000
Appassionati dell'Apple ecco un libro per
voi. Destinato ai possessori di un Apple Ile,
di un Apple II plus o di un Apple II C que-
sta raccolta di programmi si articola su
tu programmi di geografia, ortogra
Ita, inglese, disegno
• Gestione, che sviluppa alcuni esempi co-
me l’annuario telefonico, i file di indirizzi
(eventualmente utilizzabili per invio cir
• Giochi, tutti i grandi giochi classici: il gio
co dei fiammiferi, i bioritmi, il gioco del
l'impiccato, il gioco della vita, Marienbad
e molti altri sono trattati con originalità
Tulli questi programmi, largamente com
mentati e illustrati vi permetteranno di ap
profondire la vostra conoscenza del Basic
e vi serviranno come trampolino di lancio
per delle nuove creazioni.
DESIDERO RICEVERE I SEGUENTI TITOLI
□ VOGLIATE PER FA
fm. fm mi tm tm tm. m%
trattamento dei testi, i piani di lavoro elei-
ironici, gestione dei files e basi di dati, la
telematica e le reti, presentazione dei risul-
tati in forma grafica.
‘m. fm f fm fm fm im f fm fm, fm, f.m, m tm,
■■ OECONCMAT
102 programmi per Commodore 64
Autore: Jacques Deconchat
Pagine: 243 ■ Formato: 17x24
Brossura cucita - ISBN 88.7688.100.X
Ut. 20.000
Imparare divertendosi, questo è l'obiettivo
di questo libro. Sul filo di questi 102 pro-
grammi di giochi esso vi guiderà nell'esplo-
razione del Basic del Commodore 64. I
Programmi sono classificati a seconda del
livello di difficoltà e ciascuno fa appello a
delle nuove conoscenze e ad una crescen-
te padronanza del Basic. Ogni livello co-
mincia con una presentazione concisa
delle nuove istruzioni utilizzate. Tutti i gio-
chi sono ampiamente descritti e i program
mi sono esaurientemente commentati. Per
ogni versione è dato un esempio di ese-
cuzione.
CP/M passo dopo passo
Guida pratica
Autore: Alain Pinaud
Pagine: 128 Formato 17x24
Brossura cucita - ISBN 88.7688.002.X
Ut. 13.000
Quest'opera si rivolge al lettore desidero-
so di utilizzare il sistema operativo CP/M.
A questo scopo descrive in modo pedago-
gico con il sostegno di numerosi esempi
tutti i comandi di questo sistema e i loro
E ossibili utilizzi. Sarebbe preferibile che il
more possedesse un computer munito di
CP/M sul quale poter fare della pratica. Le
conoscenze richieste sono modeste: avere
qualche nozione di informatica generale e
conoscere, se possibile, il linguaggio as-
sembler (ma questo non è indispensabile).
i.u pratica dello ZX Spectram
voi. 1 - Basic approfondito e introduzione
al linguaggio macchina
Autore: Xavier Linant de Bellefonds
Pagine: 160 - Formato: 15x21
Brossura cucita ISBN 88.7688.202.2
Ut. 15.000
Destinato a completare la documentazione
di base dello ZX Spectrum, questo manua
le sfrutta tutte le possibilità del Sinclair nel-
l'ambito della programmazione avanzata.
L'autore vi espone in maniera accurata-
mente graduata: la definizione di caratteri
e le funzioni di stringa (archivi, alfabeti,
trattamento di testi); l’alta definizione gra-
fica e la potenza di calcolo (regressione,
grafici a tre dimensioni); il colore e il suo-
no (svariati giochi); le tecniche di accesso
diretto alla memoria e di utilizzo del lin-
guaggio macchina.
1 possessori dello ZX-81 troveranno in que-
sto manuale numerosi programmi trasfe-
ribili che possono essere introdotti tali e
quali sul foro calcolatore.
Dizionario di informatica
Autore: Michel Ginguay
Pagine: 216 - Formato: 17x24
Brossura cucita - ISBN 88.214.0519.2
Masson Italia Editori
Lit. 19.500
Il rapido sviluppo dell'informatica ed il suo
largo uso applicativo ha coinvolto in bre-
ve persone e ambienti diversi e lontani dal-
la cerchia degli "addetti ai lavori" che
debbono necessariamente documentarsi
su testi in prevalenza di lingua inglese.
Quest'opera risponde all'esigenza di avere
a disposizione un dizionario particolar-
mente orientato alla terminologia informa-
tica che riporti non solo i vocaboli e le
locuzioni del gergo, ma anche fornisca il
significato particolare attribuito nel conte-
sto informatico a termini del linguaggio
corrente e che sarebbe vano ricercare in
pubblicazioni rivolte alla lingua letteraria.
La pratica dello ZX Spectrum
voi. 2 Programmazione in linguaggio
macchina
Autore: Marcel Henroi
Pagine: 164 Formato: 15x21
Brossura cucita - ISBN 88.7688.203.0
Ut. 15.000
Quest’opera, dedicata alla programmazio-
ne in linguaggio macchina, è accessibile a
lutti coloro che abbiano assimilato la pro-
grammazione in Basic avanzato.
La correlazione tra i comandi Basic ed l co-
dici macchina è stata la preoccupazione
principale dell'autore, che porta progressi-
vamente il lettore alla comprensione di
routine sempre più complesse.
I tre aspetti principali dello Spectrum: il
suono, il colore, l'aita risoluzione sono og-
getto di numerosi programmi in lutt '
A poco a poco si analizzano le operazioni
logiche, il trattamento delle iterazioni, -
segnazione particolare dello Spectrum «
nimazione sullo schermo.
II lettore attento, quando avrà chiuso que
sto libro, elaborerà dei programmi perso
nali in codice macchina.
Microprocessori e microcalcolatori
Autore: Robert Lyon-Caen
Pagine: 276 - Formato: 17x24
Brossura cucita ISBN 88.214.0520.6
Masson Italia Editori
Ut. 21.000
Il testo vuole essere una guida allo studio
delle tecniche di base per l'uso dei micro-
processori. Espone la struttura e il funzio-
namento dei microprocessori, riporta alcu-
ni esempi di applicazione relativamente
semplici ed illustra i principi dei metodi di
programmazione. L'opera ha caratteristica
prettamente tecnica e non presuppone co-
noscenze particolari di matematica e fisica.
il*
il tempo al computer
di Corrado Giustozzi
Q ual è quell appassionalo di computer. hohby-
sla o professionista, che la sera, prima del
telegiornale, guardando le previsioni del tem-
po. non ha pensato almeno una volta ad A fro-
dite? Intendiamoci, non alta dea della bellezza,
che pure è un bel pensiero ma non c'entra
niente coi computer o con la meteorologia.
Intendiamo ovviamente il programma Afrodi-
te. responsabile delle previsioni meteorologi-
che nazionali. Pensateci bene: non vi è mai sorta la curiosità
di saperne di più. di conoscere cosa si nasconda dietro questo
nome tanto etereo quanto misterioso? Crediamo proprio di
si. E, se vi ci siete soffermati un attimo, vi sarete anche
accorti che... non cera proprio modo di saperne di più. /
vaghi articoli apparsi sulla stampa non specializzata certo
non costituiscono una buona fonte d'informazione, almeno
per quanto riguarda il profilo tecnico. Ed è un peccato.
perché solo conoscendo una cosa si è in grado di accettarla,
di utilizzarla criticamente: tanto più quando ce di mezzo il
computer. Bene, continuando nella nostra serie di reportage
sulle applicazioni se vogliamo poco comuni o comunque poco
note dell'informatica " seria ”, questo mese abbiamo voluto
occuparci proprio di Afrodite. Ci è sembrato infatti un argo-
mento piuttosto stimolante per le sue implicazioni, ma so-
prattutto molto d'attualità visti i... capricci meteorologici
del neonato 1985.
E quindi. Marinacci ed io siamo andati a trovare il papà di
Afrodite con i suoi computer e due noti meteorologi , per
cercare di fare il punto sulla situazione attuale delle previsio-
ni a! calcolatore.
Questo che state leggendo è appunto il resoconto della
visita a casa di Afrodite, con tanto di commento degli esperti:
ovvero, tutto ciò che avreste voluto sapere su Afrodite ma...
non avete mai saputo dove andare a cercare.
MCmicrocomputer n. 38 - febbraio 1985
È un freddo sabato pomeriggio di metà
gennaio. Via Teulada mostra ancora evi-
dentissime tracce della nevicata della setti-
mana scorsa. Qualcuno gira ancora con le
catene. Siamo diretti al numero 66. dove
ha sede il centro di produzione RAI. Supe-
riamo le formalità di rito all'ingresso e ci
dirigiamo verso lo studio 12, dove si fanno
le rubriche del TG I e le varie edizioni del
telegiornale. Siamo qui per incontrare una
delle persone che. tutte le sere, hanno il
compito e la responsabilità di raccontare
agli italiani che tempo farà il giorno dopo:
Guido Caroselli. Ha finito da poco di regi-
strare e ci sta aspettando in una delle mol-
teplici sale di regia disseminate nei corri-
doi. Entriamo nello studio e. seduti sulle
comode poltrone degli speaker del TG I.
assistiamo in religioso silenzio alla lettura
in diretta delle estrazioni del lotto: e final-
mente lo studio resta a nostra disposizione.
Il primo sguardo va al notissimo angolo
del meteorologo, proprio alle nostre spalle:
il tabellone dell'Europa con la situazione
in quota, quelli dell'Italia con le tempera-
ture e le previsioni, i monitor con le imma-
gini Meteosat... un ambiente che tutti con-
sideriamo familiare, per averlo visto ora-
mai migliaia di volte. Perché siamo venuti
in questo regno delle isobare e degli antici-
cloni? Per sentire il parere di un esperto
sulle attuali previsioni meteorologiche di
tipo numerico, ma soprattutto per sapere
se ed in che modo il computer ha cambiato
il suo modo di lavorare.
La prima domanda é scontata: “Ma A-
frodite ci azzecca o no?". Caroselli sorride.
“Non dovreste chiederlo a me. Comunque
direi di si. II programma fornisce degli sti-
matori. che in gergo si chiamano predit-
tandi. che sono generalmente piuttosto
buoni, specialmente nell'arco di tempo da
due-tre giorni fino a cinque". E quindi la
domanda successiva viene da sé: “Ma allo-
ra che scopo ha la figura del meteorolo-
go?”. "Col programma Afrodile si è cerca-
lo di oggettivizzare le conoscenze del me-
teorologo. realizzando uno strumento che
facesse previsioni non in base all'esperien-
za. ma applicando criteri obiettivi. Facen-
do ciò però si è forse persa parte della
sintesi necessaria in certe occasioni, nel
senso che Afrodite fornisce dati molto det-
tagliati e analitici, che sono senza dubbio
oggettivi, ma meno immediatamente uti-
lizzabili di una descrizione a parole, sen-
z'altro più imprecisa, ma forse più utile e
più chiara. Il nostro compito è allora quel-
lo di tradurre i numeri forniti da Afrodite
in previsioni, integrandoli anche con l'e-
sperienza e le sensazioni personali. Cosi se
le previsioni mi dicono che domani sera ci
sara 1*80 per cento di probabilità di precipi-
tazione e che la temperatura si manterrà
sotto Io zero io dirò che ci sarà una buona
probabilità che nevichi; come ho fatto la
sera prima che nevicasse qui a Roma,
quando mi ricordo dissi testualmente che
c'era una 'spasmodica attesa di neve" nel
Lazio e su Roma in particolare". “A que-
sto punto”, chiediamo, “ci dica come si
svolge la sua normale giornata di lavoro".
n. Al centro, le tlue CPl 4JJI IBM . . in prono piuno un
MCmicrocomputer n. 38 - febbraio 1985
29
“Bene, comincia quando mi reco in mac-
china al C.N.M.C.A., meglio noto come
Servizio Meteorologico dell'Aeronautica.
Li prendo visione delle carte con la situa-
zione attuale e delle previsioni, e magari ne
discuto con il personale del Servizio, scam-
biando opinioni e pareri. Raccolte tutte le
informazioni risalgo in macchina e vengo
qui in RAI dove con maggiore calma stu-
dio la situazione e preparo la mia previsio-
ne. Lo faccio, come dicevo, tenendo conto
dei valori previsti da Afrodite, ma anche
considerando la mia visione dell'evoluzio-
ne dei fenomeni in corso, al limite median-
do un po' fra le due. In generale, comun-
que, mi succede di trovarmi piuttosto in
accordo con Afrodite. A questo punto, os-
sia fatta la previsione, passo a riportare i
valori sui vari tabelloni, disegno la carta
del tempo e verso le 17,30 registro la tra-
smissione. Non mi preparo prima il discor-
setto, preferisco improvvisare di fronte al-
la telecamera anche se la rubrica non va in
diretta: in effetti registriamo solo per evita-
re interferenze operative col telegiornale,
che viene fatto nello stesso studio, ma in
diretta. La stessa cosa fa, ovviamente, il
col. Baroni quando "tocca" a lui".
Usciamo dalla RAI dopo circa un'ora di
interessante chiacchierata. Il secondo pas-
so consìste nel saperne di più su Afrodite.
E come fare ad avere queste notizie se non
domandandole direttamente a chi Io ha
fatto? Cosi il martedì successivo, indirizza-
ti dallo stesso Caroselli, ci rechiamo al
Centro Nazionale di Meteorologia e Cli-
matologia Aereonautica, all’EUR. per di-
scutere gli aspetti più tecnici di Afrodile. Il
nostro ospite è il lenente colonnello Carlo
Finizio, il quale, dopo averci illustrato in
generale le attività del Servizio ci presen-
ta... il papà di Afrodite, il capitano Costan-
te de Simone. Laureato in Fisica a Roma e
specializzatosi in Fisica dell'Atmosfera
(Roma), Previsioni Numeriche (Reading)
e Previsioni Statistiche (Parigi), dal 1977 in
Aereonautica, il capitano de Simone è co-
lui che ha effettivamente scritto Afrodite.
Responsabile del sistema numerico di pre-
visioni dell' Aereonautica, ha anche lavo-
ralo come incaricato italiano presso il Cen-
tro Europeo per le Previsioni a Medio Ter-
mine di Reading (Inghilterra), effettuando
sul Cray-XMP lì installato una buona par-
te del lavoro preparatorio e di messa a
punto di Afrodite. Con lui entriamo effet-
tivamente nei dettagli della vicenda, e non
solo per quanto riguarda Afrodite. Alla
fine della mattinata avrò collezionato di-
versi fogli di appunti che mi ricordano
quelli dell'Università.
Il meccanismo di massima con cui si
giunge alle previsioni è piuttosto semplice
concettualmente, come vedremo; ma viene
reso terribilmente critico dall'enorme mas-
sa di dati da ricevere ed elaborare in tempi
piuttosto stringenti.
Il capitano de Simone, dopo aver impu-
gnato un gessetto ed averci fatti sedere da-
vanti ad una lavagna (ci guardiamo, sen-
tendoci tornati a scuola) ci tiene una mini-
MCmicrocomputer n. 38 - febbraio 1985
lezione spiegandoci che per avere una pre-
visione locale attendibile a dodici ore è
necessario disporre dei dati meteorologici
rilevati entro un raggio di un migliaio di
chilometri dal punto interessato perché la
previsione possa essere estesa a 24 ore tale
raggio si allarga a circa 3.000 chilometri, e
diventa tutto un emisfero nel caso si richie-
da una previsione a 48 ore.
Per le previsioni a lunga scadenza, fino a
otto-dieci giorni, servono i dati di tutto il
globo.
Il Centro Europeo di Reading in effetti
riceve proprio i dati di tutte le stazioni
meteorologiche del mondo, già da molti
anni organizzate in una rete internaziona-
le. Ogni Paese raccoglie le informazioni
provenienti dalle proprie stazioni e le tra-
smette, oltre che agli altri Paesi, al centro di
Reading, dove ogni otto ore affluiscono le
rilevazioni effettuate da circa 5.000 stazio-
ni meteorologiche dislocate in tutto il mon-
do, a terra, su navi e su sonde atmosferi-
che.
Il flusso di dati in arrivo è di circa ottan-
ta milioni di bit al giorno. A Reading c'è,
come dicevamo, un Cray-XMP, il più
grande supercomputer del mondo: forma-
to da due CPU Cray-1 in parallelo. l'XMP
è capace di circa 150 Mips, ossia centocin-
quanta milioni di operazioni al secondo.
Tale velocità non è un lusso, ma un ob-
bligo; la sola fase di preelaborazione dei
dati grezzi per renderli adatti ad essere in-
seriti nel modello matematico richiede 30
miliardi di operazioni al giorno! Si vede
come un computer "normale” non potreb-
be stare al passo con il lavoro, tanto più
che la preelaborazione è solo una piccola
fase del lavoro.
I dati trasformati servono ora da input
ad un modello matematico dell'astmosfe-
ra, che è il vero “previsore".
Un modello matematico non è altro che
l’insieme delle conoscenze, vere o suppo-
ste, delle leggi che regolano un dato feno-
meno; esso quindi consente di simulare il
comportamento del fenomeno in esame,
"proiettando" nel futuro la sua evoluzio-
ne. Se il modello è fatto bene, le previsioni
non si discosteranno molto da ciò che av-
rebbe fatto nella realtà il fenomeno analiz-
zato.
II modello dell'atmosfera messo a punto
a Reading è, naturalmente, un oggetto as-
sai complesso.
Semplificando parecchio, si tratta di un
enorme sistema di equazioni differenziali
dipendenti dal tempo, oltretutto non linea-
ri e quindi non risolubili analiticamente,
ma solo per via numerica.
L'elaborazione del modello per ottenere
una previsione a dieci giorni implica la bel-
lezza di cinquecento miliardi di operazioni!
Un calcolatore da un milione di opera-
zioni al secondo impiegherebbe quasi sei
giorni per risolvere il sistema e fornire
quindi le previsioni; che, quindi, non sa-
rebbero a dieci giorni ma a quattro, e per
giunta di qualità scadente essendo basate
su dati di sei giorni prima!
Il Cray di Reading invece se la cava in
circa un’ora e mezza, tempo che sembra
bassissimo ma non lo è. in quanto non
appena finisce l'elaborazione di una previ-
sione parte subito quella della previsione
successiva basata sui dati che nel frattem-
po hanno continuato ad arrivare. La tem-
pificazione delle attività è pertanto la se-
guente: stabilito ipoteticamente che le cin-
quemila stazioni del mondo facciano o-
gnuna le sue misure all'ora zero, e le invii-
no gerarchicamente ai propri centri di rac-
colta nazionali, ci vogliono circa tre ore
perchè tutti i dati giungano a Reading. Alle
tre di mattina comincia quindi la preelabo-
MCmicrocomputer n. 38 - febbraio 1985
31
razione, che dura circa un'ora. Alle quat-
tro i dati sono pronti e parte l’elaborazione
del modello, che impiega appunto circa
un'ora e mezza. Alle cinque e trenta è pron-
ta la previsione a dieci giorni che viene
subito rilanciata a tutti gli utenti, risultan-
do cosi elTetlivamente disponibile entro
sole sei ore dalle misure meteorologiche.
Il modello di Reading. però, non forni-
sce le previsioni nazionali per singole loca-
lità, e in particolare per l'Italia. Questo è
appunto compito di Afrodite. E quindi do-
po averci inquadrato operativamente il
funzionamento della rete per le previsioni
atmosferiche, il capitano de Simone passa
a spiegarci in dettaglio le operazioni che si
svolgono al C.N.M.C.A.. Il modello di
Reading simula la terra in modo discreto,
mediante un reticolo di punti posti sulla
superficie del globo ad una distanza ango-
lare di un grado e mezzo, che alle nostre
latitudini corrispondono a circa cento chi-
lometri. Il reticolo in realtà ha anche un'e-
stensione nella direzione verticale, in più
"strali" posti sopra al corrispondente pun-
to al suolo. Per ogni punto del reticolo il
Centro di Reading fornisce come output i
valori previsti di cinque quantità: pressio-
ne atmosferica, direzione e intensità del
vento, temperatura ed umidità. Succede
però che i dati più attendibili sono quelli
riferiti a quote elevate, e questo per le ovvie
azioni modificatrici imputabili all'orogra-
fia del particolare sito in considerazione, di
cui il modello tiene conto solo in parte.
Inoltre per un paese dall'orografia cosi tor-
mentala come il nostro, è facilmente intui-
bile che un reticolo di cento chilometri di
lato è troppo lasco per avere una buona
precisione. Infine la “larghezza" dell'Italia
è paragonabile alla risoluzione del reticolo,
e ciò fa ovviamente scadere ulteriormente
l'affidabilità delle previsioni al suolo. Per
avere allora delle previsioni locali al suolo
che siano attendibili, diventa necessario ri-
correre ad un "trucco": un ulteriore mo-
dello matematico che. ricevendo come in-
put gli attendibili valori previsti in quota
(predittori). applichi loro un'opportuna
funzione di trasformazione che porti in
conto l’orografia nazionale, per fornire
un'ulteriore serie di valori (predittandi)
che rappresentino i parametri al suolo rela-
tivi a siti ben precisi. Questo modello, o
meglio questa funzione di trasformazione,
é proprio Afrodite. Simbolicamente pos-
siamo scrivere la trasformazione come
y = F(x), dove F è Afrodite, x sono i predit-
tori forniti da Reading e y sono i predittan-
di in uscita dal programma. Attualmente
Afrodile è costituito da 16.737 funzioni
polinomiali che ricevono 100.919 x e forni-
scono 8.358 y ogni giorno. I coefficienti dei
polinomi sono stati ottenuti mediante un
procedimento di regressione ai minimi
quadrati applicato agli ultimi trenta anni
di registrazioni meteorologiche nazionali.
Ossia per ogni registrazione meteorologica
degli ultimi trenta anni si è sviluppata una
previsione, confrontandola poi con l'effet-
tivo avvenimento: i coefficienti incogniti
sono stati scelti in modo che l'errore fra
valori previsti e valori verificati fosse mini-
mo. Questa ricerca, per la cronaca, è stata
svolta sul Cray di Reading. in circa dieci
ore macchina.
I parametri previsti da Afrodite vengo-
no trasmessi dal C.N.M.C.A. a una vasta
classe di utenti: traffico aereo militare e
civile, ministeri, grandi enti (ENEL. ENI.
RAI. SIP. Autostrade), ognuno dei quali
ne fa l'uso che ritiene necessario (e spesso,
temiamo, li ignora...). Se fosse organizzato
un servizio di banca dati pubblico, ogni
utente in possesso di un personal potrebbe
collegarsi per avere le previsioni locali: e
magari, avendo le funzioni di trasforma-
zione ed i parametri ad hoc (ed i dati di
Reading) calcolarsi le previsioni per il
suo... quartiere o isolato. Ma per il mo-
mento non è prevista l'apertura al pubbli-
co di questo servizio, per cui l'uomo della
strada dovrà continuare ad ascoltare la
radio o la televisione per sapere che tempo
farà il giorno dopo. Naturalmente le attivi-
tà del C.N.M.C.A. non si limitano a far
girare Afrodite: il Centro raccoglie diretta-
mente i dati delle stazioni italiane e di quel-
le europee (dai nodi di Parigi e Offenbach
via telefax) elaborando previsioni autono-
me. oltre a compiere altri lavori di ricerca.
Attualmente I hardware in dotazione al
Centro consiste in due IBM 4341 in paral-
lelo. ognuno con 8 Megabyte di memoria
centrale.
L'ultima tappa del nostro viaggio den-
tro Afrodite è praticamente d'obbligo. Do-
po aver sentito le voci dei responsabili del
programma e di un meteorologo “giova-
ne". non potevamo non sentire quella del
meteorologo "anziano", forse il primo in
Italia ad aver dato a questa scienza una
collocazione ben precisa presso il grosso
pubblico. Parliamo ovviamente del colon-
nello Edmondo Bernacca. che siamo anda-
ti a trovare nella sua casa situata (combi-
nazione?) a poche centinaia di metri dal
C.N.M.C.A.. In un intero pomeriggio di
chiacchierata, il colonnello ci ha esposto la
sua opinione e le sue perplessità sull'uliliz-
zo indiscriminato di strumenti di previsio-
ne automatica. “Non che la strada intra-
presa non sia quella giusta, credo solo che
si sia voluto fare il passo un po' più lungo
della gamba. Non si può sostituire comple-
tamente e repentinamente la macchina
all'uomo: c'è ancora bisogno di meteorolo-
gi che sappiano disegnare le carte a mano
partendo dalle osservazioni, che le sappia-
no leggere ed interpretare alla luce del ra-
gionamento e dell'esperienza. Con Afrodi-
te si è voluto abbandonare la meteorologia
'tradizionale': ma Afrodite non è ancora
un sistema esatto, non conosciamo ancora
con sufficiente precisione le leggi che rego-
lano i fenomeni fisici nell'atmosfera". Gli
chiedo: “Lei crede che sarebbe stato neces-
sario un più lungo periodo di 'parallelo' tra
Afrodite e quella che lei chiama meteorolo-
gia tradizionale?". “Certamente. La me-
teorologia tradizionale rimane valida, è un
supporto cui appoggiarsi per proseguire
nello studio dei modelli numerici di previ-
sione. Senz'altro si arriverà ad avere previ-
sioni automatiche molto attendibili, ma
quelle attuali non lo sono totalmente: ad
esempio, risultano nettamente in errore in
caso di fenomeni repentini e di breve dura-
ta. che non fanno in tempo a prendere in
considerazione."
E quest'ultima visita conclude la nostra
indagine sulla meteorologia al calcolatore.
In strada, al solito, i commenti a caldo. La
sensazione che entrambi abbiano riportato
è che in questa vicenda ci sia forse troppo
Calcolatore e troppo poco Uomo. Indub-
biamente Afrodite va meglio di un uomo
per fare le previsioni a cinque giorni, ma ci
sono cose che sfuggono ad un modello ma-
tematico: e quindi deve esserci una persona
ad accorgersene. Il C.N.M.C.A. ha imboc-
cato senza dubbio la strada giusta: ma for-
se. come diceva Bernacca. un passaggio
meno brusco dall'uno all'altro metodo av-
rebbe potuto giovare ad entrambi. È sera
tardi, e ci salutiamo. In questo momento
va in onda la rubrica di Caroselli. Immagi-
no già cosa dirà, ho i tabulati di Afrodite
nella ventiquattr'ore... MC
32
MCmierocomputer n. 38 - febbraio 1985
MASS STORAGE SOLUTIONS
...se al vostro Personal Computer:
Hf-SPERSV PC
Panasonic
modello 4
ITT X TRA
oliwetti
ItaltelMgtMisfc
ERICSSON
Texas
Instruments
Aggiungete
Q^cipplo computer
viCTf» sirìus
EPSON
SANYO
apricot .
ADD-IN
Espansione interna con unità
Winchester da 1 0-20-30
megabytes complete di:
• Controller residente
• Unità a disco Winchester
• Kit di montaggio
• Documentazione in italiano
• Programmi di utilità
Otterrete un nuovo più potente sistema, perfettamente compatibile con quello originale,
"massimizzando” la memoria e “minimizzando” l'investimento.
L'ampliamento di memoria avviene in ambiente di estrema affidabilità, con prestazioni
superiori, utilizzando i leggendari prodotti XEBEC, “thè zero defect company", leader
mondiale nella progettazione e realizzazione di Controllers e Memorie di massa.
Caratteristiche particolari:
- Parcheggio testine su zona priva di dati.
- Correzione automatica degli errori.
- Back-up automatico.
- Boot strap diretto da hard-disk.
Le “soluzioni" FORUM sono garantite per un anno dall’installazione.
INFORMATICA VIOEO TELEMATICA
Via Asmara, 58 - 001 99 Roma
Tel. 06/8395766-8394458 TLX 616130
Distribuzione per l'Italia:
modo che sul video compaia-
no di volta in volta indicazio-
ni sullo stadio dell'evoluzio-
ne (generazione), sul numero
di individui nati e morti nel
passaggio dalla generazione
precedente a quella attuale,
sulla densità della popolazio-
ne attuale e sulla variazione
rispetto alla generazione pre-
cedente. In questo modo si
possono seguire gli eventi
con maggior precisione, e si
hanno più mezzi per inter-
pretare il comportamento
della colonia. I risultati che si
ottengono mostrano che ge-
neralmente le colonie troppo
dense o troppo sparse non
hanno vita lunga, ma tendo-
no ad estinguersi rapidamen-
te o a degenerare piuttosto in
fretta in strutture stabili, os-
sia che non mutano in nume-
ro e disposizione degli indivi-
dui vivi da una generazione
all'altra. Questo comporta-
mento. dei resto facilmente
prevedibile, avviene in quan-
to in una generazione troppo
poco densa sono poco pro-
babili nuove nascite (che ri-
chiedono tre vicini vivi) men-
tre sono molto più probabili
le morti per isolamento; al
contrario, una generazione
particolarmente densa ne
produce immancabilmente
una estremamente rarefatta,
a causa delle numerose morti
per sovrappopolazione. Ag-
gregali con densità interme-
die sviluppano invece com-
portamenti più variati e du-
raturi; la densità non varia di
molto fra una generazione c
l'altra, ed è probabile che col
tempo si creino alcune “iso-
le" stabili circondale da
gruppi di cellule dall'evolu-
zione caotica ed incerta, il cui
destino non appare chiaro se
non dopo mollissime mosse.
Appare evidente che questo
modo di giocare Life permet-
te. però, di comprenderne so-
lo le proprietà di tipo statisti-
co e per di più riferite alla
globalità della struttura,
mentre non ci mette affatto
in grado di analizzare singoli
comportamenti di gruppi dì
cellule, in particolare dal
punto di vista geometrico.
Per fare ciò è necessario po-
ter disporre gli individui del-
la generazione iniziale nel
particolare modo voluto,
compiendo cioè il secondo ti-
po di analisi di cui parlava-
mo in precedenza. Ciò richie-
de innanzitutto un program-
ma un tantino più complica-
to del precedente: esso, ad e-
sempio. deve permettere di
descrivere la posizione di o-
gni individuo che si vuole in-
Eccoci nuovamente a par-
lare di Life. Nella puntata
precedente di MCgiochi ab-
biamo visto, se vi ricordate,
le regole di base di questo
gioco affascinante. Abbiamo
fatto conoscenza con gli stra-
ni abitanti unicellulari del-
l'infinito mondo bidimensio-
nale di Life ed abbiamo visto
le leggi che ne regolano na-
scita. morte ed evoluzione.
Infine, abbiamo discusso
brevemente di come si possa-
no implementare in un pro-
gramma per calcolatore le
strutture e le regole del gioco.
In questa seconda puntata ci
addentreremo negli sviluppi
del gioco stesso, comincian-
do col vedere due possibili
strategie di approccio allo
studio di Life c finendo con
l'incontrare particolari con-
figurazioni di cellule dall'e-
voluzione piuttosto peculia-
re e talvolta sorprendente.
Notiamo intanto che due
sono le cose che viene spon-
taneo lare quando si ha a di-
sposizione un (buon) pro-
gramma di calcolo di Life:
studiare l'evoluzione di una
grande colonia di cellule ot-
tenuta generando a caso gli
individui, oppure esaminare
il comportamento di ben pre-
cisi insiemi di poche cellule
costruiti ad hoc. Entrambe le
linee d'azione portano a svi-
luppi piuttosto interessanti, c
perciò degni di essere discus-
si in questa sede; continuere-
mo pertanto questa puntata
andando a vedere ciò che
succede in ognuno di questi
due casi. Nel primo, lutto
sommato, serve ben poco; un
"mondo" piuttosto vasto (al-
meno di 30 x 30) è l'unico re-
quisito indispensabile. Si ge-
nerano quindi a caso numero
e posizione degli individui vi-
vi al tempo zero, ottenendo
la generazione iniziale; e
poi... si sta a guardare. Già
cosi il risultalo sarà piuttosto
interessante, ma sono possi-
bili diversi miglioramenti.
Un modo più raffinato di
procedere potrebbe intanto
essere quello di stabilire a
priori la densità della nostra
popolazione iniziale, espres-
sa come rapporto percentua-
le fra numero di cellule vive e
numero totale di cellule co-
stituenti il mondo. Tanto per
fare un esempio, se dispongo
di un mondo di 30 x 30 cellu-
le. partire con una densità del
25", , significa che la mia ge-
nerazione iniziale dovrà esse-
recostituita da 225 individui.
In questo modo si possono
correlare densità iniziale e
modalità di evoluzione della
colonia, ottenendo chiari in-
dizi di come sovrappopola-
zione o isolamento influisca-
no nel modificare la struttura
nel corso del suo sviluppo.
Potrebbe infine essere inte-
ressante disporre opportuni
contatori nel programma, in
&
e
«
o
©
34
MCmicrocomputer n. 38 - febbraio 1985
scrire. ma deve nel contempo
dare la possibilità di tornare
indietro per variare la posi-
zione di individui già inseriti,
cancellandoli. Se ci si limita a
strutture composte di pochi
individui allora il mondo
può essere anche di dimen-
sioni piuttosto limitate, a tut-
to vantaggio della velocità di
calcolo e dell'occupazione di
memoria: ma vale sempre il
principio per cui più spazio
abbiamo a disposizione e
meglio è. Tanto per esercitar-
ci possiamo provare a vedere
cosa succede con gruppi di
tre individui adiacenti (appa-
re chiaro dalle regole che
gruppi aventi meno di tre
membri muoiono subito).
Provare per credere, delle
cinque soie possibili disposi-
zioni di tre cellule, tre si estin-
guono alla seconda genera-
zione. una diventa subito un
quadrato di quattro punti
che rimane stabile, e l'ultima
si trasforma i un ...oscillatore
con periodo 2! La configura-
zione in questione è quella in
cui le tre cellule sono allinea-
te, ed alterna l’allineamento
in direzione verticale a quello
in direzione orizzontale. Con
quattro cellule le cose non
cambiano molto: le configu-
razioni possibili sono solo
cinque, e di esse una (il qua-
drato) è e rimane stabile, tre
si stabilizzano entro la terza
generazione in una struttura
vagamente esagonale detta
"favo”, ed una si trasforma
alla nona generazione in un
oscillatore di periodo due
formalo da quattro oscilla-
tori a tre cellule del tipo visto
prima. Non vi diciamo qual
è la configurazione di parten-
za per non togliervi il gusto
di scoprirlo da soli. Passando
a gruppi di cinque individui
le cose sembrano complicarsi
parecchio, e si cominciano a
fare incontri con oggetti
piuttosto strani. Uno dei più
interessanti è quello che
Conway (l'ideatore di Life)
ha chiamato “aliante” (fig.
I ): la sua evoluzione è tale
che ogni quattro generazioni
il gruppo ritorna alla sua for-
ma originaria, ma si trova
spostato, nel piano, di una
casella a destra ed una in bas-
so! In altre parole, l'aliante
trasla sul piano alla velocità
di una casella ogni quattro
generazioni. Se lasciato fare
è in grado di percorrere tutto
il mondo uscendo ben presto
dallo schermo del vostro cal-
colatore. per poi eventual-
mente rientrarvi dal lato op-
posto se avete costruito il
programma in base alle indi-
cazioni date nella puntata
precedente. Un comporta-
mento piuttosto sorprenden-
te, non vi pare? Un altro og-
getto alquanto misterioso è
quello che vedete in figura 2;
potete provare a costruire il
suo comportamento nelle
prime mosse, ma sappiate
che lo stesso Conway. col suo
vecchio PDP-7. lo ha seguito
fino alla quattrocentottante-
sima (!) generazione senza
riuscire a capire se e come
terminerà il suo intricato svi-
luppo. Se non avete tanta pa-
zienza, ma volete comunque
osservare qualcosa di simpa-
tico, mettete cinque individui
in fila indiana: anche una
struttura semplice come que-
sta vive una vita piuttosto
complessa e movimentata!
Ma il passo definitivo nel-
lo studio di configurazioni
particolari si compie quando
si prendono in considerazio-
ne aggregati di una dozzina
di individui o anche più. Le
cose, adesso, si fanno vera-
mente complicate, e servono
decisamente un buon pro-
gramma, un calcolatore ve-
loce ed una notevole dose di
pazienza (oltre a molta pas-
sione e molto tempo libero).
Per fortuna gran parte del
lavoro di scoperta è già sta-
to fatto, evidentemente da
qualcuno che disponeva di
tutte queste cose. Anzi, da
più di qualcuno: negli anni di
grande boom di Life, un in-
tero gruppo di ricercatori di
intelligenza artificiale al
M.I.T. si mise d'impegno al-
lo studio di Life, ottenendo
risultati che chiamare inte-
ressanti è poco. Per uno di
essi, tra l’altro, vinsero addi-
rittura un premio bandito
dallo stesso Conway e desti-
nato a chi avesse saputo con-
fermare o confutare una sua
congettura riguardante l'e-
spansione delle strutture di
Life. Conway pensava che
nessuna struttura potesse ac-
crescersi all'infinito, ossia
generare un numero infinito
di individui: il gruppo del
M.I.T. riusci a trovare un in-
credibile controescmpio. che
vedete in figura 3. Questa
struttura di ventotto cellule,
dall'apparenza innocua e
"slegata", è invece un terribi-
le "cannone ad alianti", co-
me lo battezzarono i suoi
scopritori. Nell'arco di qua-
ranta generazioni esso si e-
volve in una struttura dall'a-
spetto altrettanto inverosi-
mile. che costituisce il canno-
ne vero e proprio: ossia un
oscillatore di periodo 30, che
"fabbrica" un aliante a cin-
que cellule (del tipo visto in
precedenza) ad ogni oscilla-
zione e poi lo lascia andare!
Questa struttura è quindi in
grado di dare vita ad un nu-
mero infinito di individui, i
quali, oltretutto, se ne an-
dranno in giro per l'eternità
sull'illimitato piano di Life,
sotto forma di aliante. Cre-
diamo che il nome Life (Vita)
per questo gioco sia. a questo
punto, decisamente il più ap-
propriato!
Bene, per questa volta termi-
niamo qui. Nella prossima
puntata termineremo il di-
scorso su Life... in bellezza,
incontrando oggetti ancora
più strani del cannone spara-
alianti (ad esempio un man-
gia-alianti. che ne dite?). Ve-
dremo pure qualche altro
gioco della famiglia di Life, e
discuteremo di come sempli-
ci variazioni alle regole di e-
voluzione portino a strutture
e comportamenti assai diver-
si tra loro. tt€
MCmicrocomputer n. 38 - febbraio 1985
35
L'RDI. la compagnia alla quale si deve lo
sviluppo della tecnologia del primo laser ga-
me. Dragon's lair. sta per commercializzare
un accessorio in grado di far finire in soffitta il
povero, vecchio joystick.
L'unità in questione si chiama Halcyon, e le
sue caratteristiche principali consistono nella
ricognizione e nella sintesi del parlato. Arma-
to di unacuffietta dotata anche di microfono il
giocatore può comandare Halcyon diretta-
mente con la voce. Halcyon naturalmente è un
sistema laser; per esso attualmente sono di-
sponibili cinque giochi, quattro realizzati con
la tecnica dei cartoni animati ed uno con spez-
zoni dì un film commerciale.
Dalla voce al semplice pensiero poi il passo
è breve (beh. relativamente); a compierlo co-
munque ci ha già pensato l'Atari. evidente-
mente molto sensibile alle esigenze dei super
pigri che non vogliono nemmeno sforzarsi a
parlare. Mindlink (collegamento mentale)
consente di comandare la consolle di video-
giochi VCS. 7800 ed il computer Atari con la
mente (ma c'c il trucco...).
Il tutto consiste in un'unità trasmittente,
collcgata ad un sensore da mettere intorno alla
testa, ed in una ricevente, da inserire nella
consolle. In realtà Mindlink non capta alcun
messaggio cerebrale di sorta, ma basa il suo
funzionamento sulla rilevazione degli impulsi
muscolari quando si muovono le sopracciglia.
L'aggeggio comunque fa incredibilmente sce-
na. ed è anche abbastanza economico a soli
100 dollari.
Decisamente più caro Halcyon. che di dol-
lari ne costa ben 2000: i joystick possono stare
tranquilli ancora per un po'...
MUD,
l'avventura muiti-utente
Si chiama MUD. ed c sicuramente la più
affascinante avventura mai esistita.
Cos'ha di tanto speciale? Lo dice il nome:
MUD sta infatti per Multi User Dungeon.
avventura multi utente. Questo vuol dire che
può essere giocala contemporaneamente da
più giocatori seduti ognuno al proprio termi-
nale. che interagiscono fra loro nel corso del-
l'avventura. parlandosi, aiutandosi o anche
combattendosi, Lo scenario di MUD è ovvia-
mente vastissimo, e comprende molti luoghi
tipici delle avventure classiche: boschi, citta-
delle. caverne c cosi via. Anche l'obiettivo è
quello solito: esplorare più luoghi possibile
raccogliendo tesori, combattendo mostri e so-
prattutto sopravvivendo.
Più ci sì inoltra nell'avventura più si guada-
gna in esperienza: ci sono 10 livelli: Novizio.
Guerriero. Eroe. Campione. Supereroe, In-
cantatore. Negromante. Leggendario e Mago.
È all'ultimo livello che inizia il vero diverti-
mento: i maghi infatti sono esseri immortali
per i quali ogni azione è lecita. Un mago ha in
pratica il controllo totale della situazione: può
costringere gli altri giocatori (eccetto gli altri
maghi, ovviamente) a compiere le azioni che
desidera e persino i mostri gli obbediscono.
Tra le tante possibilità della condizione di ma-
go vi c quella di avere sul monitor una copia
dello schermo di qualsiasi altro giocatore, sen-
za che questo se ne accorga; ciò permette di
sapere sempre e comunque I utto quello che sta
accadendo nell'avventura.
Se uno dei giocatori si comporla male, di-
sturbando gli altri, un mago può facilmente
trasportarlo per un po' di tempo in qualche
luogo senza uscite o addirittura escluderlo
permanentemente dal gioco.
È ovvio che una cosa del genere non può
essere implementala su nessun micro in circo-
lazione: ci vuole assolutamente un mainframe,
infatti MUD gira su DEC 10 della Esse* Uni-
versity. in Gran Bretagna.
Giocarea MUD tuttavia non è un privilegio
solamente degli studenti di quella università; c
possibile collegarsi al DEC via telefono, a pat-
to di possedere un computer fornito di modem
e dell'opportuno software di comunicazione.
L'unico vero problema è costituito dal co-
sto della bolletta telefonica: una chiamata in-
temazionale della durata di qualche ora non è
proprio economicissima...
MUD è un programma cosi grosso e com-
plesso che vi si può accedere solo dopo la
mezzanotte o durante i weekend, altrimenti
potrebbe mancare lo spazio alle altre attività
del centro. Chi sofTre d'insonnia e non ha
problemi di vii denaro può richiedere ulteriori
informazioni su MUD e sulle modalità neces-
sarie [)er il collegamento scrivendo a: Richard
Barile. Department of Computer Science. U-
niversity of F-ssex, Wivenhoe Park. Colche-
ster. Essex CQ4 3SQ. MC
Come molli dei giochi attualmente
prodotti per il Commodore 64. anche
Borzak ha un caricamento veloce e una
schermata grafica mollo colorata, che se
allunga un po' il caricamento, se non
altro allieta il povero giocatore costretto
a vedere uno schermo altrimenti peren-
nemente chiaro.
Borzak è l'affascinante bestiola (rosa)
dagli occhi d'insetto che viene dalla lon-
tana stella Betelgeuse (thè amazing Bug-
Eyed beaslie from Betelgeuse); la sua ca-
ratteristica più appariscente, però, non
sono gli occhi, bensì il naso, a trombetta
come quello di ogni extraterrestre che si
rispetti. Un errore la ha portata molto
lontano dalla sua astronave, che deve
quindi raggiungere, partendo dalla palu-
de dove si trova. L'azione si svolge da
sinistra verso destra, e propone insidie sia
aeree che terrestri, seguendo l'usuale co-
pione dei giochi a metà tra gli space inva-
dere e il pac-man.
La cassetta cita l’autore del gioco, tal
Paul Hargreaves. ma anche chi ha tra-
dotto l'originale per il Commodore 64.
che è M. McKec ( 1 984): ciò spiega alme-
no in parte il tipo di gioco, di per sé un po'
lento e comunque non basato sulle carat-
teristiche del computer su cui gira (a par-
te la schermata in hi-res di cui sopra),
cosa evidenziata anche dalla presenza di
un solo livello di gioco.
L.S.
Produttore:
36
MCmicrocomputer n. 38 - febbraio 1985
Dicono le note di copertina: "Nell'an-
no 2525 la tecnica dei viaggi nel tempo è
finalmente perfezionata. Gli scienziati
che hanno realizzato il progetto vi man-
dano indietro nel tempo, con un veicolo
terrestre equipaggiato di tutto punto. Il
vostro obiettivo è di assistere la razza
umana in tutte le sue battaglie, dall'età
preistorica alle conseguenze del conflitto
finale. Solo il più completo successo della
missione può assicurarvi il ritorno". Se
per tornare dovete vincere sempre, delle
due l'una: o la tecnica dei viaggi non è poi
tutta questa bellezza, oppure gli scienzia-
ti del 2525 sono sadici assai!
Scherzi a parte, la Anirog ha tirato
fuori un giochino abbastanza interessan-
te. non tanto per la tecnica del gioco,
comunque variato quel tanto che basta a
mettervi in difficoltà anche al livello 1.
quanto per l'interessante ricostruzione di
varie epoche storiche: noi abbiamo pas-
sato abbastanza agevolmente la prima e
seconda schermata, corrispondenti alle
prime due guerre mondiali (a proposito:
dell'età preistorica ed eventuali dinosauri
neanche l'ombra, ma magari vengono
dopo — è o no una macchina del tem-
po?). realizzando comunque poche mi-
gliaia di punti. In entrambi i casi si ha
una vallata incastrata nei monti, su cui
l'autoveicolo che guidate si muove da
sinistra a destra, cercando di evitare, o
meglio di colpire con il doppio cannonci-
no che spara davanti ed in alto, i vari
pericoli: le bombe lanciate dagli aerei con
traiettoria parabolica (se le colpite pren-
dete 500 punti) e le picchiate degli stessi
aerei, che se colpiti una volta cadono
come sassi — e spesso su di voi! — e se
colpiti due volte esplodono in aria senza
conseguenze per la missione; sassi da ab-
battere con uno o più colpi; buche da
saltare. Per giungere alla fase 2 dovete
percorrere IO miglia in queste condizioni,
nel qual caso ottenete un bonus in punti
proporzionale al tempo risparmiato e u-
na vita in più. La struttura del secondo
pannello è identica a quella del primo,
ma cambiano i disegni degli aereoplani e
dei pericoli in generale.
La tecnica grafica è interessante: lo
sfondo montagnoso è fisso, mentre una
fascia centrale — che rappresenta le im-
mediate vicinanze della strada da voi per-
corsa — si muove da sinistra a destra
punto per punto (scroll laterale parziale),
cosi come fa la vostra automobile. Non è
previsto il controllo da tastiera, quindi
avrete bisogno di un joystick. Le possibi-
lità sonore del 64 sono usate quasi esclu-
sivamente per generare una serie di ru-
mori di sfondo (caduta bombe, moto,
auto, etc.) e di controllo (un suono acuto
ad ogni miglio percorso) che non per al-
lietare il travaglio del giocatore.
La battaglia nel tempo può essere gio-
cata da due contendenti, e a due diversi
livelli di gioco; è fornita una tabellina con
i punteggi maggiori della giornata. Il
programmatore è Ken Grant; la Anirog
ha venduto i diritti per USA e Canada
alla Advantage. con sede nel secondo
paese.
L.S.
MCmicrocomputer n. 38 - febbraio 1985
37
Senza dover inventare nulla di clamo-
roso, una nuova moda si sta diffondendo
nei giochi per home computer; l'abbelli-
mento degli scenari, storicamente scarni
ed essenziali. La struttura rimane invece
la stessa: avversari dalle forme strava-
ganti. per di più forzati a muoversi sul
piano frontale rispetto all'osservatore, vi
ostacolano a più riprese, cercando di di-
struggervi. Certo, anche se sullo sfondo
abbiamo le piramidi le difficoltà non au-
mentano, ma forse ci si abitua in un tem-
po minore del solito.
Phase 4 è la solita difesa del pianeta dai
cattivi Visitors con la lingua da serpente
(bleehl), ma rispetto alla tradizione offre
un caricamento veloce, la grafica un mi-
nimo curata di cui sopra ed anche le op-
portune possibilità di gioco per uno o
due difensori del genere umano (oh, gli
intrepidi eroi!), che dopo averci salvato
vanno all’attacco nello spazio, attraver-
sano le difese della città nemica e final-
mente distruggono l'intera città degli av-
versari, che cosi non nuoceranno più
(molto pittoresco!). La logica del gioco
prevede l'eliminazione di un certo nume-
ro di nemici nella stessa schermata; una
ve cercando di abbattere le astronavi ne-
miche, che giungono in senso opposto, e
di evitare i loro missili.
Quello che più ci ha delusi è stata tutta-
via la mancanza di cura nella realizzazio-
ne del programma, che si evince chiara-
mente già dai titoli di testa, che risultano
sfalsati.
Il gioco in sé è abbastanza noioso,
principalmente per la carenza di varianti,
dato che la velocità generale é più che
buona; anche la grafica non è da buttare,
vista la classe del programma, con i vari
oggetti che si muovono pixel per pixel.
Vista la semplicità dei comandi il pro-
grammatore non ha ritenuto opportuno
prevedere il collegamento di qualche in-
terfaccia per joystick; le istruzioni sono
in cinque lingue tra le quali fortunata-
mente anche l'italiano. MB.
Produttore:
Master ironie.
Via Stnurenghi 31. 21100 Varese.
volta abbattuti si ricomincia da capo. La
fase 1 prevede un ambiente di tipo egizia-
no, in cui bisogna abbattere una dozzina
di nemici, impresa questa non troppo dif-
ficile. La fase 2 è in pratica uno space
invaders a geometria variabile: gli avver-
sari vagano in gruppi di due o tre. e voi
dovete colpirli senza scappare, poiché i
vostri colpi seguono i vostri movimenti, e
quindi se vi scansate mancate il centro.
La fase 3 è sempre di tipo spaziale, ma un
po' più complicata della seconda: tra le
altre difficoltà aggiuntive c’é che alcuni
dei proiettili nemici vi inseguono, quindi
fate attenzione. Alla fase 4 non ci siamo
ancora arrivati...
Realizzato dal solito Mark McKec,
Phase 4 é controllato da joystick, ed è
predisposto per uno o due giocatori: a
nostro parere si tratta di una spruzzata di
varietà su un gioco tradizionale.
L.S.
SlTtThlrgan'.TréLn
lame ostare PR1 SBH. GB
Anche se il prezzo di vendita è incredi-
bilmente contenuto, dobbiamo confessa-
re che ci aspettavamo di più da questo
Viper III.
La trama non è molto originale e con-
siste nel comandare una piccola astrona-
38
MCmicrocomputer n. 38 - febbraio 1985
w
Se si dovesse giudicare un gioco dalla
grafica, allora questo Grabber sarebbe
tranquillamente scartato. Per fortuna
cosi non è. e quindi possiamo riferirvi di
esserci divertiti nel giocarci. Grab vuol
dire arraffare; in questo caso forse è me-
glio "prendere in fretta", come compren-
derete dal prosieguo dell'articolo.
Il gioco si compone di due piccoli labi-
rinti. come potete vedere in fotografia,
che vanno affrontati contemporanea-
mente. Pur giocando in una soia stanza
per volta, infatti, potete trasferirvi dall'u-
na all'altra premendo il tasto di fuoco del
joystick (che comunque non è obbligato-
rio). In ogni vertice delle due stanze c'è
un osso, per un totale di otto: questi van-
no ricondotti in altrettante celle poste al
centro di ognuna delle stanze. 11 solito
nemico, che se vi prende vi uccide, è un
altro mostriciattolo simile a voi. per di
più invincibile. A lui si aggiunge un male-
detto intrigante, che si prende il compito
di disfare il vostro lavoro, spargendo o-
vunque gli ossi raccolti: ma. a differenza
del primo, questo può essere (momenta-
neamente) sconfitto se avete ingerito una
delle quattro pillole gialle a disposizione;
per ricordarvi fino a quando ne dura l'ef-
fetto, le vostre gambe diventano momen-
taneamente bianche. Il gioco può riparti-
re direttamente premendo FI, mentre
viene momentaneamente fermato dal
Avete 4 vite, che si incrementano di 1
sia se raggiungete i 20000 punti che se
passate il livello; ogni livello, per la cro-
naca. è composto di 10 tavole. Il carica-
mento avviene tramite un loader in Ba-
sic, che rimane in macchina anche duran-
te il gioco, e si cura anche di gestire parte
del programma, che comunque è per la
maggior parte in linguaggio macchina:
può essere assai istruttivo osservarne la
struttura.
La maggior particolarità del gioco è la
complessità apparentemente non eleva-
ta: grande è quindi l'attenzione che dov-
rete riporre nel controllare contempora-
neamente due schermi (anche se di di-
mensioni ridotte) ognuno con i suoi peri-
coli. e non uno solo. Un consiglio che
possiamo darvi è di pensare molto alle
varie situazioni, eventualmente fruendo
della possibilità di fermare l'esecuzione
premendo il succitato tasto Return. Utile
l'opportunità di usare uno o due joystick
con due giocatori; se il joystick è uno solo
va messo nella porta numero 2.
L.S.
Il titolo completo di questa avventura,
che richiama subito alla mente immagini
di cavalieri, maghi e damigelle, è The
Quest for thè Holy Grail, ovverossia La
ricerca del Sacro Calice.
Sembra una cosa seria, ma il sottotito-
lo, che la definisce come la prima avven-
tura comica grafica, fa sorgere dei dubbi
sull'eroicità dell'impresa che aspetta l'av-
venturoso giocatore. Dubbi peraltro giu-
stificati; The Quest ecc. ccc. è stata ispira-
la dal film "Monthy Python and thè Ho-
ly Grail" e chi conosce Monthy Python
sa già che lo aspetta un umorismo che
non ammette vie di mezzo: o fa sbellicare
dalle risate oppure lascia totalmente in-
differenti. Questione di gusti...
In ogni caso questa avventura è adatta
soltanto a chi lo conosce davvero bene: i
doppi sensi ed i giochi di parole del testo
rischiano altrimenti di far capire ben po-
co della trama. A prescindere da essa,
comunque, il programma è abbastanza
ben fatto, con un vocabolario sufficiente-
mente esteso ed una grafica curata.
Se avete un sense ofhumor molto ela-
stico e non vi spaventa trovare fianco a
fianco nella stessa avventura Re Artù ed
un (lic parigino, Holy Grail è un pro-
gramma da provare. M.B.
PrnduKorc:
MCmìcrocompuler n. 38 - febbraio 1985
39
Non è un'avventura, non è un gioco di
strategia; piuttosto una combinazione di
entrambi, ed anche qualcosa di più.
Eccone la trama: il giorno del Solstizio
è sempre più vicino, e sta per avere inizio
la guerra tra Doomdark, il malvagio ti-
ranno della terra di Midnight. ed i Liberi,
guidati da Luxor, il Principe della Luna.
Midnight. un tempo fertile e prosperosa,
ora è trasformata in una landa ghiaccia-
ta. poiché è dal freddo che Doomdark
preleva i suoi poteri.
Il giocatore prende il ruolo di Luxor;
grazie al magico Anello della Luna. Lu-
xor può controllare le azioni di tutti colo-
ro che gli sono fedeli e vedere attraverso i
loro occhi, ovunque si trovino; all'inizio i
caratteri che Luxor controlla sono Mor-
kin. il figlio. Rorthron. II Saggio, e l'ami-
co Corleth. Proseguendo nel gioco Luxor
dovrà formare le sue armate guadagnan-
do altri abitatori di Midnight alla pro-
pria causa.
Ci sono due modi di sconfiggere
Doomdark. Il primo consiste nel portare
le armate fino alla Piana della Dispera-
zione e cingere d'assedio la cittadella di
Ushgarak, quartier generale del tiranno;
il secondo è affidato al tentativo, da parte
di Morkin. di raggiungere la torre del
Destino per distruggere la corona di
ghiaccio, sorgente dei poteri di Doom-
dark.
Nel primo caso il protagonista princi-
pale è Luxor, ed il gioco risulta più simile
ad un war game, mentre nel secondo caso
si ha una vera e propria avventura basata
sulle azioni di Morkin.
La strategia migliore c però quella di
seguire entrambe le strade, anche se in
questo modo l'azione procede meno ra-
pidamente.
Vediamo come si svolge il gioco. II
giocatore deve comandare Luxor ed i ca-
ratteri da lui controllali in modo che le
azioni di tutti permettano di raggiungere
la vittoria finale. Ogni carattere può
viaggiare liberamente per la terra di Mid-
night; di giorno agiscono Luxor cd i suoi
uomini, mentre di notte ha via libera
Doomdark. Nel corso del gioco capita
frequentemente di dover combattere; o-
gni tanto si tratta di veloci scaramucce
fra bande o di duelli singoli, ma quando
sono coinvolte due opposte armate ci
vuole parecchio tempo perché si conclu-
da la battaglia. Lo spostamento dei vari
caratteri e la scelta delle azioni avviene
tramite la pressione di tasti singoli; allo
scopo nella confezione é fornita una ma-
scherina mnemonica da sovrapporre alla
tastiera dello Spectrum.
Sullo schermo appare quello che vede
il carattere selezionato, nella direzione in
cui è rivolto. Grazie all'astuta combina-
zione di alcuni elementi fondamentali, in
totale si possono ottenere più di 32.000
schermate in alta risoluzione; un vero e
proprio record.
Assieme al programma viene dato un
completo manualetto di istruzioni, che
contiene anche un simpatico racconto
della passata storia di Midnight. Sulla
sua copertina é disegnala una pianta, del
regno di Doomdark, necessariamente
sommaria per la vastità della zona, ma
comunque molto utile per non vagare
totalmente alla cieca.
Per gli amanti delle avventure e dei
libri del genere Fanlasy si tratta di un
gioco da non perdere.
MB.
Produttore:
Ber and - Farndon Rumi
Market Harhorough. Leics. 1GB)
Distributore per l'Italia:
LAGO snc - Fiale Massenzio Masia 79
;;ino Coma ■ Te I WS I) SS2276
40
MCmicrocomputer n. 38 - febbraio 1985
Il nome vuole dire "bandiera a scac-
chi". ed é facile intuire che si tratta della
simulazione di una corsa in un bolide di
formula 1. Di fronte ad ogni gioco di
questo tipo è inevitabile il voler tentare
un confronto con il famosissimo Pole Po-
sition Atari, recensito sul numero di giu-
gno '84 in versione per il C64 e da poco
disponibile anche per lo Spectrum.
Vi avvertiamo subito che tra i due pro-
grammi vi è una profonda differenza:
Chequered Flag è più una simulazione,
mentre Pole Position si avvicina mag-
giormente ad un gioco. Nel programma
della Psion infatti si nota all'istante che
sullo schermo non si vede la vettura in
pista, come nel caso di Pole. ma si ha
soltanto la visione che si avrebbe stando
realmente seduti al posto di guida, e cioè
il cruscotto ed il muso anteriore.
Proprio questo tentativo di avvicinarsi
il più possibile alla realtà ha portato ad
escludere la presenza di altre macchine
sulla pista (i sorpassi in Pole Position
sono decisamente troppi); non si gareg-
gia. quindi, ma si tenta solo di ottenere il
record della pista.
Il programma permette un notevole
numero di scelte iniziali. Le piste fra le
quali scegliere sono molte, alcune famo-
sissime. come Monza e Montecarlo, altre
inventate li per li e battezzate con nomi
abbastanza ridicoli: Micro Drive (!). Par-
co Psion. Sabbie di Saturno...
Tre sono le macchine a disposizione,
ognuna dalle differenti caratteristiche.
La Me Faster Special farà inorridire pa-
recchi. essendo dotata di cambio auto-
matico. ma è l'ideale per impratichirsi
nella guida: ci sono poi la Psion Pegasus e
la potentissima Feretti Turbo.
Lo scenario è molto scarno, con un
paesaggio ridottissimo e dei box rappre-
sentati da semplici linee tracciate sui ter-
reno, ma la scelta è stata sicuramente
necessaria per non far scendere troppo la
velocità. Le piste, in compenso, sono di-
gitalizzate discretamente bene, con tanto
di salite e discese.
L'unica vera critica che si può muove-
re alla grafica riguarda il muso della vet-
tura: le ruote non sterzano in curva, e ciò
disturba non poco, anche perchè dà fasti-
dio essere obbligati a guardare il volante
per vedere di quanto è girato. I comandi
sono decisamente troppi, con addirittura
quattro tasti per sterzare lentamente o
velocemente nelle due direzioni.
Anche se le istruzioni non lo dicono, al
posto della tastiera, adatta più alla dea
Kali che ad un povero umano, si può
usare un joystick collegato tramite l'in-
terfaccia Sinclair. M.B.
Ecco un ennesimo discendente di Ma-
nie Miner; rispetto alforiginale questo
Son of Blagger si distingue per avere una
zona di gioco unica, invece che divisa in
schermate successive.
La cosa, dobbiamo dire, non costitui-
sce affatto un miglioramento, perché lo
scroll del fondo, necessario poiché l'area
utile è molto superiore a quella del video.
avviene tutto in un botto quando il pro-
tagonista del gioco cammina oltre la me-
tà dello schermo, con un effetto abba-
stanza fastidioso a vedersi.
La trama è quella solita: raccogliere
tutte le chiavi presenti evitando di defun-
gere prematuramente andando a sbattere
contro qualche ostacolo letale.
La grafica sfrutta a fondo i colori, ma
risulta spesso un po' confusa, rimanendo
comunque nella media; molto brutto il
pupazzetto protagonista, che non ispira
la minima simpatia.
La musica che accompagna l'azione è
il famoso Bolero di Ravel; peccato solo
che per il programmatore il tempo non
abbia avuto nessuna importanza: la velo-
cità di esecuzione sembra assolutamente
casuale, e rallenta o accelera in maniera
abbastanza poco piacevole. M.B.
Produttore:
Alligala Software Ltd.
I Orange Street . Sheffield SI 4DW. GB
MCmicrocomputer n. 38 - febbraio 1985
41
capire esattamenle qual è la verticale sul-
la quale si trova la propria astronave,
anche tenendo presente il riferimento
fornito dall'ombra; ciò provoca alcuni
problemi di mira, e capita spesso di vede-
re i proiettili passare accanto al bersaglio
che si credeva perfettamente centrato.
Dal punto di vista tecnico il gioco è
mollo ben realizzato: la difficoltà in par-
ticolare ci sembra ben dosata, tale da
impegnare a fondo ma non fino al punto
di far venire la voglia di passare a qualco-
sa di meno impossibile: i livelli sono
quattro, differenziati principalmente
dalla velocità di scroll dell'asteroide.
La grafica è ottima e buoni sono anche
gli effetti sonori, francamente però siamo
convinti che i sistemi MSX possano dare
ancora qualcosa di più da questi due
punti di vista.
Si può usare sia il joystick che la tastie-
ra: in questo secondo caso si pilota con i
tasti di movimento del cursore e si spara
con la barra spaziatrice.
Zaxxon è fornito su cassetta; una scel-
ta che approviamo in quanto permette di
contenere il prezzo di vendita. Il pro-
gramma si trova registrato su entrambe
le facciate, a due diverse velocità. 1200 e
2400 baud.
MB.
Gli Zaxxon sono dei temibili robot,
che hanno conquistato una cintura di a-
steroidi importantissima dal punto di vi-
sta strategico. Al giocatore spetta il com-
pito di distruggere le installazioni degli
Zaxxon. sorvolando gli asteroidi con un
potente caccia spaziale; una missione pe-
ricolosa. perché le difese del nemico sono
oltremodo difficili da superare.
L'astronave a disposizione ha una ri-
serva di munizioni praticamente illimita-
ta: il carburante, al contrario, finisce
piuttosto presto e bisogna rifornirsi spes-
so. distruggendo i serbatoi presenti sugli
asteroidi (strano modo di fare un pie-
no...)
La zona di gioco viene vista tridimen-
sionalmente; l'effetto del movimento vie-
ne ottenuto facendo scrollare l'asteroide
(che, per la verità, assomiglia stranamen-
te ad una autostrada) verso sinistra, men-
tre il caccia rimane fermo.
All'inizio è un po' difficile riuscire a
Ecco la vostra possibilità di diventare
il detective più famoso del mondo: un
informatore vi annuncia che una banda
sta preparando il più clamoroso furto del
secolo: i gioielli della Corona! Alla vostra
abilità é affidalo il compito di salvare i
I gioielli c di assicurare i malfattori alla
giustizia.
Nonostante sia quasi interamente in
| Basic. The Great Detective è un'avventu-
a divertente: niente di particolarmente
[ sofisticato, d'accordo, ma si lascia gioca-
n piacere.
Il gioco si svolge guidato dal compu-
ter. che descrive l'azione e propone una
serie di alternative fra le quali il giocatore
deve scegliere.
La grafica svolge una parte importante
e qua e là vi é anche qualche timido ac-
cenno di animazione; purtroppo non
sempre il programmatore ha indovinato i
colori delle scene, che talvolta risultano
non troppo chiare.
La logica del programma è piuttosto
interessante, con un unico vero difetto: si
muore troppo facilmente. Va bene che
fare l'investigatore comporta molti peri-
coli. ma sentirsi informare che si è appe-
na stati puniti con la morte per non essere
riusciti a decifrare un messaggio ci pare
un tantino eccessivo!
MB.
42
MCmicrocomputer n. 38 - febbraio 1985
Sony è lieta di presentare la prima donna
che ha perso 5 chili col computer.
Brava mamma! 5 chili in 5 settima-
ne: adesso hai quasi le misure di
Miss Italia. E in 5 settimane hai an-
che imparato a usare il computer!
HOME COMPUTER
HIT BIT
Il nuovo Hit-Bit Sony è veramente
facile. Quasi come scrivere a mac-
china. Hit-Bit Sony è un vero com-
puter "familiare". adatto per tutta
la famiglia. La mamma lo usa per
la dieta e per la dispensa di casa;
papà per i conti del bilancio, per la
denuncia dei redditi e per la sua
"collezione" di vini. Barbara per
gli oroscopi, per i bioritmi e per
tenere in ordine i dischi. Andrea
per studiare (ci sono programmi
di italiano, matematica, geome-
tria, storia, geografia, ecc.), per
MSX* è la sigla
| W ' 4M del nuovo stan-
dard internazio-
nale unificato,
adottato dalle più importanti mar-
che del mondo di Home Compu-
ter (Sony in testa). La caratteri-
stica rivoluzionaria dell'MSX è la
compatibilità: per la prima volta
nella storia degli home computer,
tante marche diverse parlano la
stessa lingua, rendendocosl pos-
sibile l’interscambio dei program-
mi e delle unità periferiche, (più o
meno quello che già succede coi
componenti Hi-Fi).
O MSX è un marchio registrato delio Microsoft Co
suonare le sue canzoni e per un
sacco di videogiochi.
Insomma, con Hit-Bit Sony in po-
che settimane una normalissima
famiglia si è trasformata in un'au-
tentica "famiglia al computer".
■f
Meo Floppy Ps> Dolo Cato
Hit-Bit Sony, il primo computer "familiare”.
IL MUOVO
Oltre al connettore di espansione, ed al connettore per collegare i Microdrive supplementari, il
Pulsarne di reset
Permette di cancellare il contenuto della memoria
del computer senza scollegare l'alimentazione
^ " Connettore di estensione Microdrive
Interconnessione in reti locali: QLAN
Un collegamento per comunicazioni ad alta velocita
per mtercollegare lino a 64 computer Sinclair QL
oppure ZX Spectrum, I dati vengono trasferiti lungo
la rete ad una velocità di 1 00 kbaud, ed i protocolli
garantiscono che le stazioni interessate siano pronte
prima di inviare i dati. I dati possono essere anche
distribuiti, tramite la rete, a tutti i computer in
Versione Inglese
Porta monitor
Il Sinclair QL permette una risoluzione molto elevata
quando e collegato ad un monitor. Sono disponibili
due modi: 512 x 256 pixel, con quattro colori •
nero, bianco, verde, rosso (oppure 4 gradazioni di
grigio); 256 x 256 pixel, con 8 colori (oppure 8
sfumature di grigio; e lampeggiamento.
Il numero dei caratteri sullo schermo è determi-
nato dal numero dei pixel, ma è disponibile una
scelta di set di caratteri. Il formato normale e di 85
colonne per 25 righe.
Possono essere usati sia monitori a colon (RGB)
che monocromatici.
Porta TV
I modi di visualizzazione su TV sono gli stessi di quelli
per il monitor, ma il formato normale è di 40.60
*” colonne, a -seconda del software.
Possono essere usati sia televisori a colori che
B/N.
PACCHETTI SOFTWARE IN DOTAZIONE
QL-QUILL
Elaborazione testi
QL-ABACUS
Spreadsheet
QL-ARCHIVE
Gestione archivio dati - database
SINCLAIR QL
Sinclair QL ha altre 9 porte per periferiche, chiaramente configurate sul pannello posteriore.
Connettore di espansione per la scheda di memoria
a 0,5 Mbyte e periferiche di prossima presenta-
Joystlck
E previsto il collegamento di uno o due |oystick per
giochi, oppure per controllare il cursore. Il controllo
del cursore può anche essere effettuato mediante
quattro tasti separati sulla tastiera.
ORAC’
E’
QL - EASEL
Grafica commerciale
DISTRIBUTORE ESCLUSIVO PER L’ITALIA
Per ulteriori informazioni scrivere a:
REBIT Computer - CASELLA POSTALE 10488 - MI
m m
Commodore C 16
di Tommaso Pantuso
Finalmente arriva l'atteso Commodore
16 di cui. come molti ricorderanno, è appar-
sa un anteprima sul numero 33 ( settembre I .
Questa macchina fa apertamente tesoro
dell'esperienza acquisita dalla Commodore
nell 'analisi delle reali esigenze degli utenti di
/tome computer: ciò ha portato, come avrete
modo di osservare leggendo la prova, all'in-
troduzione di quegli elementi che mancava-
no sui modelli precedenti e che non consenti-
vano uno sfruttamento intensivo di strutture
fondamentali ed una sufficiente versatilità.
Sono quindi state introdotte le opportune
varianti a! Basic : basti pensare alla presenza
di un set di istruzioni per la grafica. Usuano,
gli errori e l 'editor, oltre a quella de I Moni-
tor che permette di lavorare agevolmente in
LM . a I Basic più evoluto ed alla possibilità
di gestire direttamente drive doppi.
Per motivi attualmente oscuri, ma che la
politica della Commodore americana — e
quindi, di riflesso, quella italiana — svele-
ranno in seguilo, il C 16 parte con soli !2K di
memoria utente che non consentono di gesti-
re contemporaneamente grosse quantità di
dati. Un altro fattore apparentemente limi-
tali ivi è la solita dipendenza dalle periferiche
della casa. Sono presenti ancora i connettori
per stampante seriale Commodore e per dri-
ve che utilizzano lo stesso protocollo di base:
la casa pare intenzionata ad immettere sul
mercato una serie di periferiche di qualità
! stampanti grafiche e a colori di vario tipo,
dischi, eie.) a prezzi mollo accessibili. Ve-
diamo quindi se per compattare tutte le pos-
sibilità offerte e per rimanere concorrenziali
sul prezzo si è dovuto rinunciare a qualcosa.
Come si presenta
La forma e le dimensioni sono le stesse
dei suoi due predecessori Vie 20 e C 64, cioè
circa 40 x 20 x 7 cm, mentre il colore è di
gran lunga più scuro, diciamo grigio scu-
rissimo (quasi nero). Anche qui nella parte
superiore destra troviamo il Led rosso che
funge da spia di accensione e sulla sinistra
la solita targhetta, questa volta con la scrit-
ta Commodore 16. Il fianco destro della
macchina ospita due ingressi per joystick
che a prima vista suscitano qualche per-
plessità a causa delle loro dimensioni al-
quanto ridotte: sono delle piccole prese
circolari ad otto poli simili come forma a
degli ingressi Din standard, ma di diame-
tro minore (circa IO mm). Affiancato a tali
prese troviamo un elemento nuovo che
sopperisce ad una mancanza dei modelli 20
e 64: il pulsantino del Reset, il quale ripri-
stina il sistema in caso di blocco e lo riporta
nelle condizioni iniziali riposizionando i
puntatori (compresi quelli del Basic) e fa-
cendo riapparire la scritta "Commodore
Basic V3.5 12277 Bytes Frec" (una foto del
manuale riportava 6067 1 Bytes Free!). Sul-
la destra del pulsantino troviamo infine
l’interruttore, la presa di alimentazione,
anch'essa di dimensioni e forma diverse da
quelle dei modelli precedenti.
Anche sul lato posteriore le cose cambia-
no un po': non troviamo più una User Port
a disposizione dell’utente, quindi tutti i se-
gnali utili andranno prelevati dal Bus ri-
condotto sulla Porta di espansione, questa
volta a 50 poli (6 in più rispetto a quella del
Vie e del C 64) e alloggiata, come di con-
sueto, sulla sinistra. Proseguendo da sini-
stra verso destra troviamo l’uscita Rf Tv
46
MCmicrocomputer n. 38 - febbraio 1985
proveniente da un modulatore interno, so-
luzione già sfruttata sul 64, l'uscita Video
per un eventuale Monitor, la presa seriale
per il collegamento di periferiche quali
stampanti e floppy drive ed infine l'uscita
per il registratore a cassette, anch'essa di-
versa rispetto alle precedenti versioni, per
la quale valgono le stesse considerazioni
latte per gli ingressi joystick.
Sul manuale in dotazione della macchi-
na non troviamo informazioni sulla descri-
zione delle piedinature dei connettori, per-
ciò per maggiori approfondimenti, dob-
biamo attendere una letteratura più speci-
fica in materia che prevediamo non si farà
attendere molto vista la qualità della mac-
china.
La tastiera e le nuove funzioni
La tastiera, di buona qualità, è una
QWERTY ed i tasti sono sempre 61 (que-
sta volta grigio chiarissimo) a cui si aggiun-
gono la barra spaziatrice ed i soliti quattro
tasti funzione. Quasi tutti sono duplicati,
triplicati o addirittura quadruplicati tra-
mite lo Shift o il tasto Commodore in bas-
so a sinistra o per mezzo del Control.
Le prime differenze di rilievo tra questo
ed i modelli precedenti possono essere col-
te da un rapido esame dei contrassegni sui
tasti. Il primo tasto che cambia posizione è
la freccetta orizzontale (che era in alto a
sinistra) al cui posto troviamo il tasto ESC
(Escape). noto agli utenti del Basic Micro-
soft e presente già su molti computer della
stessa categoria. Sulle funzioni del tasto in
questione avremo modo di parlare tra bre-
1 tasti utili a muovere il cursore sullo
schermo non sono più due. duplicati dallo
Shift. ma diventano quattro e cambiano
posizione portandosi dall'ultima alla pri-
ma fila, spostati verso destra; su di essi
sono disegnate delle frecce che indicano il
verso dello spostamento. La prima vera
novità viene affidata a due dei tasti della
fila più in basso, sulla parte anteriore dei
quali troviamo scritto rispettivamente
FLASH ON e FLASH OFF: premendo
nel modo adeguato questi tasti insieme al
CTRL (Control) potremo programmare
delle scritte lampeggianti con la stessa fre-
quenza del cursore, cosa molto utile per
evidenziare operazioni importanti o mes-
saggi di errore.
I tasti da I a 8, se premuti in modo
diretto o tra virgolette in un programma,
permettono di ottenere caratteri in ben se-
dici colori e sono alcuni di quei tasti dal
quadruplice effetto a cui accennavamo po-
pressione contemporanea dello Shift e del
Run/Stop: se prima si otteneva di caricare
e di mandare in Autorun un programma
registrato su cassetta, ora si ottiene lo stes-
so effetto, solo che il programma viene
caricato da disco.
Particolare attenzione meritano i tasti
funzione che diventano programmabili
dall'utente, cosa che in precedenza si otte-
neva aggiungendo ai micro della Commo-
dore delle Eprom o dei tool su supporto
magnetico i quali implementavano anche
nuovi comandi: vedremo, nell'esame del
Basic, che tutti i comandi che una volta
venivano aggiunti solo in un secondo tem-
po ed in maniera spesso non troppo como-
da sono ora presenti, insieme a molti altri
che derivano dalla Microsoft, nel nuovo
set proposto dalla casa.
Ritornando ai 'tasti funzione', oltre a
poter loro assegnare delle funzioni specifi-
che si può fruire di quelle predefinite (che
sono 8) messe a disposizione dalla macchi-
na all'accensione, e delle quali si può otte-
nere subito l'elenco scrivendo KEY segui-
isaaaaaaaaaaaaaaa
ooaooooaoooQoen
eeooooooaooBBQ cbb
ooaooooaoBBBaiQQ
47
MCmicrocomputer n. 38 - febbraio 1985
to dalla pressione di Return. Esse sono:
fi GRAPHIC
(2 DLOAD + CHR$(34)
13 DIRECTORY + CHR$(13)
f4SCNCLR + CHR$(13)
fS DSAVE + CHR$(34)
f6 RUN + CHR$(13)
f7 LIST + CHR$(13)
f8 HELP + CHR$(13)
Con GRAPHIC (seguito da uno o più
numeri) si ottiene di entrare in uno dei
modi grafici disponibili. DLOAD e DSA-
VE seguiti dalle virgolette. CH R$(34), e da
una stringa che rappresenta il nome, dan-
no luogo al caricamento o al salvataggio di
un programma su disco mentre con (3 è
possibile richiamare la lista completa dei
file alterando solo il contenuto dello scher-
mo e quindi lasciando immutato il pro-
gramma in memoria (se ben ricordate, con
LOAD “$".8 si otteneva la perdita del pro-
gramma in memoria) e con f4 si ottiene
invece la cancellazione dello schermo. La
funzione di f6 ed 17 è evidente. Una nota di
riguardo merita il tasto f8 che ora non si
chiama più cosi, ma HELP. Se in un pro-
gramma viene riscontrato un errore di sin-
tassi da parte dell'interprete, premendo
HELP viene evidenziata, lampeggiante
sullo schermo, la linea incriminata e quindi
si può procedere alla correzione posizio-
nando il cursore in corrispondenza del ca-
rattere da modificare (a proposito di corre-
zioni, date un'occhiata, più avanti, alle
nuove operazioni che si possono svolgere
mediante l'utilizzo del tasto ESC!).
Per cambiare la funzione di uno dei tasti
suddetti si agisce molto semplicemente
scrivendo:
KEY n " nuova funzione " < Return >
dove n rappresenta il numero del tasto da
modificare.
Il tasto ESC
Ma le sorprese non sono ancora finite!
Abbiamo accennato alla presenza del tasto
ESC e ci siamo riproposti di parlarne
più approfonditamente. Rimbocchiamoci
quindi le maniche ed elenchiamo qualcuno
tra i più importanti compiti svolti dall'E-
scape.
Il primo che ci viene in mente è quello
svolto da ESC R che riduce le colonne
dello schermo a 38, e ciò può tornare utile
quando si ha a che fare con teleschermi che
aberrano l’immagine sui bordi. Per tornare
nelle normali condizioni, cioè a 40 colonne
(e 25 righe), basta premere due volte il
tasto CLEAR/HOME che ora porta la
scritta stampigliata per intero. Vi facciamo
notare che va premuto prima ESC, poi
rilasciato, e solo in seguito si può premere
R. Un’altra cosa che vogliamo evidenziare
è che in questa macchina, all'accensione, è
già presente l'autoripetizione dei tasti e
quindi se li teniamo premuti per più tempo
del necessario si otterrà la ripetizione sullo
schermo del carattere da essi rappresenta-
to. Con ESC B ed ESC T possiamo selezio-
nare una finestra sullo schermo e da quel
momento in poi il cursore e le scritte po-
tranno scorrere in essa come in una scato-
la, mentre con ESC M è come se ottenessi-
mo una finestra di 40 x 25 in cui è disabili-
tato lo scroll verso l'alto; per riattivarlo
basterà premere ESC L.
Per quanto riguarda l'editor abbiamo
dei comandi molto interessanti, tipo ESC J
ed ESC K che portano il cursore rispettiva-
mente all'inizio ed alla fine della linea su
cui esso si trova in quel momento, ESC I
che serve per inserire uno spazio tra due
righe ed è utilissimo per aggiungere una
nuova linea ad un certo punto di un listato.
ESC A (escluso da ESC C) che è identica
alla funzione di inserimento nei wordpro-
cessor: da un certo punto in poi in una
frase possono essere inserite delle parole
senza creare preventivamente uno spazio,
in quanto tutto ciò che si trova a destra del
cursore viene spostato automaticamente
nel corso dell'aggiunta. Con ESC D potre-
mo cancellare la linea su cui abbiamo posi-
zionato il cursore, con ESC P la parte che si
trova prima di esso e con ESC Q quella che
si trova dopo. Ancora degno di nota è il
fatto che si possa ottenere lo scroll di una
linea verso il basso o verso l'alto con ESC W
ed ESC V.
MCmicrocomputer n. 38 - febbraio 1985
Anche il tasto CONTROL abilita dei
comportamenti particolari se premuto in-
sieme ad alcune lettere, come il fermare
l’elaborazione o lo scorrere di un listato,
porre le scritte in campo inverso ed altro,
ma su esso per il momento non riteniamo
utili ulteriori precisazioni.
Come si può notare da queste prime no-
te. questa macchina possiede una potenza
non indifferente se paragonata alle sorelle
siglate Vie 20 e C 64, potenza che la pone su
un piano di rilievo tale da portarla a con-
correre anche con il C64. A ciò contribui-
scono la presenza di una grafica in alta
risoluzione (320 x 200) di buona qualità e
di un Basic il cui set di istruzioni — assai
più nutrito del solito — ne semplifica di
molto l'uso.
Il Basic
La memoria disponibile per il program-
ma Basic parte dalla locazione decimale
4096 e si estende per 12 K. È possibile
intercettare facilmente l'inizio e la fine di
tale area analizzando il valore di due pun-
tatori a 2 byte, contenuti rispettivamente
nelle locazioni 43/44 e 55/56, con il coman-
do PEEK: la fine del programma è invece
indicata da un altro puntatore, sistemato
nelle locazioni 45/46 decimali.
Dopo questa brevissima nota introdutti-
va, passiamo all'analisi dei nuovi elementi
del set di istruzioni e comandi del Basic
V3.5 utilizzato dalla Commodore, esclu-
dendo per ora quelli relativi alla grafica ed
al suono che analizzeremo più avanti. Co-
minciamo con alcuni comandi che sono
stati introdotti come aiuto alla program-
mazione e al debug, i quali si vanno ad
aggiungere ad alcune delle funzioni svolle
a questo scopo dal tasto ESC.
Il comando AUTO ci permette di otte-
nere la numerazione automatica delle linee
con passo scelto da noi, garantendo dei
listati più ordinati oltre ad un risparmio di
tempo.
Con DELETE possiamo cancellare una
o più linee in un programma e per la rinu-
merazione con passo scelto useremo il co-
mando RENUMBER. Di notevole impor-
tanza per il debug risulta TRON (Trace
On), disabilitato da TROFF (Trace off),
grazie al quale, mentre il programma è in
esecuzione, ci vengono mostrati sullo
schermo, racchiusi tra parentesi quadre, i
numeri delle linee eseguite ed in questo
modo è più facile raggiungere la causa di
una eventuale anomalia ed eliminarla.
A proposito di errori, è bene accennare a
TRAP, RÉSUMÉ, RÉSUMÉ NEXT,
ERRS, ER.
Le istruzioni TRAP e RÉSUMÉ per-
mettono di indirizzare il programma in
maniera calcolata in caso di errore, di cui il
codice e il messaggio possono essere identi-
ficati con ER e ERRS. evitando cosi che il
sistema si arresti. Esse vanno a sostituire le
usuali istruzioni di manipolazione del pro-
gram counter (ON ERROR, ON BREAK
e cosi via): per meglio mostrarne la sintassi
e la potenza utilizziamo un apposito listati-
no pubblicato altrove in questa prova. Si
presti attenzione all'uso del RENUMBER
quando è presente nel programma l'istru-
zione TRAP seguita da un numero di linea,
in quanto tale numero non viene cambiato.
Si è rimediato ad una vecchia carenza
introducendo l'istruzione di programma-
zione strutturata IF THEN ELSE; insieme
ad essa troviamo il DO LOOP WHILE,
che permette di eseguire ripetutamente un
blocco di istruzioni poste tra Do e Loop
While finché un'assegnata condizione è ve-
ra, ed il DO LOOP UNTIL per la quale
può valere il discorso fatto per la preceden-
te se sostituiamo alla parola "vera" la pa-
rola "falsa", consentendo un ben maggiore
controllo del flusso di istruzioni.
Ad altre mancanze si rimedia con l'in-
troduzione di PRINT USING. che per-
mette la formattazione e l'arrotondamento
di variabili in output, insieme alla quale si
può impiegare PUDEF (Print Using Defi-
nition, che si occupa della ridefinizione del
modo di funzionamento della formattazio-
ne), e di RESTORE n con cui é possibile
indirizzare il puntatore del Data.
Da come vanno le cose a questo punto é
abbastanza logico supporre la presenza di
nuovi comandi per il disk drive, ed infatti
anche in questo caso rimaniamo tutt'altro
che delusi. La prima novità è che possono
essere gestiti sia Drive singoli che doppi e
quindi non potevano mancare il BACKUP
ed il COPY per la copia di dischi e file
singoli. Chi non vuole impiegare i vecchi
comandi Load e Save con tutto quello che
segue può agevolmente usufruire di
DLOAD e DSAVE. Questa volta, se vo-
MCmicrocomputer n. 38 - febbraio 1985
gliamo la lista dei programmi conservati su
disco senza distruggere un eventuale pro-
gramma in memoria, possiamo servirci di
DIRECTORY (al postodi Load“$'\8) che
modifica solo il contenuto dello schermo.
Infine abbiamo HEADER che è un utile
comando per la formattazione (semplice
ed ultra veloce), e COLLECT che effettua
il garbage collection del disco, operazione
che riordina i file eliminando gli eventuali
vuoti tra blocchi.
Si tenga presente che molte delle istru-
zioni e dei comandi descritti finora sono
seguiti da parametri che* permettono loro
di svolgere anche funzioni più complesse.
Per quanto riguarda la matematica, non
sono stati introdotti cambiamenti di rilie-
vo rispetto al 64 ed il grado di precisione
rimane sempre lo stesso, cioè nove o dieci
caratteri numerici (a seconda che il punto
decimale sia presente o meno) per la nor-
male notazione, suddivisi tra parte intera e
decimale, e trentottesima potenza di IO per
un numero in notazione esponenziale posi-
tiva. Troviamo invece qualche nuova fun-
zione di carattere generale: oltre a quelle
già viste abbiamo: HEXS e DEC per utili
conversioni decimali-esadecimali e vice-
versa. INSTR per l'intercettazione di pa-
role. JOY per la lettura dei joystick. DSS
che fornisce tutte le informazioni su un
eventuale errore del disco ed ancora
RCLR. RGR. RLUM. RDOT che resti-
tuiscono il valore di alcuni parametri.
Qualche parola va dedicata al program-
ma di monitor inserito nella macchina. Es-
so può essere usato anche come assem-
blatore/disassemblatore. dotato di svariati
comandi come: A per assemblare, D per
disassemblare. M per il dump della memo-
ria, X per tornare al Basic...; il programma
è richiamabile con la parola riservata MO-
NITOR.
Schermo, grafica e suono
Per il suono ce la caviamo abbastanza
presto. La qualità non è molto dissimile da
quella che si poteva ottenere con il Vie 20,
ma purtroppo manca una voce rispetto a
quel modello. Un vantaggio però c’è, e
consiste nella presenza di comandi specia-
lizzati come VOL per il controllo del volu-
me e SOUND per ottenere la nota di cui
possiamo controllare, sempre con la stessa
istruzione, anche la durata e decidere se
deve trattarsi di suono o di rumore bianco.
Il manuale fornisce una formula per calco-
lare la frequenza del suono emesso a secon-
da del valore introdotto nel registro del
suono che, comunque, secondo le nostre
prove, non va presa troppo alla lettera.
Una scelta progettuale, magari discuti-
bile, ma sicuramente non occasionale bensi
motivata da scelte ben precise, ha portato
ad escludere gli sprite che nel manuale non
sono neanche citati.
Anche per modificare la combinazione
del colore dello sfondo e del bordo abbia-
mo il comando COLOR che, grazie ad un
parametro aggiuntivo, permette di variare,
pensate un po', anche la luminosità dei
colori sullo schermo.
La grafica, con 320 x 200 punti, possie-
de un set di istruzioni che raggruppano le
due doti di semplicità e potenza, permet-
tendo ottimi risultati.
GRAPHIC ci porta nel modo grafico in
alta risoluzione o multicolor e permette (se
richiesto) di dividere lo schermo in un'area
per il disegno ed un'altra per il lesto che
inoltre, con CHAR, può essere posiziona-
to nell'area ad alta risoluzione per com-
mentare i disegni anche con scritte in cam-
po inverso, Con BOX possiamo disegnare
quadrati e rettangoli, farli ruotare e nello
stesso tempo colorarli e con DRAW si
tracciano agevolmente linee: la mancanza
del Plot è solo teorica, dato che lo stesso
Draw ne svolge la funzione semplicemente
Tabella riassuntiva.
KEYWORD
TYPE
KEYWORD
TYPE
ABS
tunction — numeric
GSHAPE
RENAME
command
ASC
lunction— numenc
HEADER
RENUMBER
command
ATN
lunction — numenc
HEXS
function — string
RESTORE
statement
AUTO
command
IF GOTO
statement
RÉSUMÉ
statement
BACKUP
command
IF THEN ELSE
RETURN
statement
BOX
statement
INPUT
RGR
function — numeric
CHAR
statement
INPUT#
statement
RIGHTS
function— string
CHR$
function — string
INSTR
RLUM
function— numeric
CIRCLE
statement
INT
RND
function— numeric
CLOSE
statement
JOY
RUN
command
CLR
statement
KEY
command
SAVE
command
CMD
statement
LEFTS
SCALE
statement
COLLECT
command
LEN
SCNCLR
statement
COLOR
statement
LET
SCRATCH
command
CONT
command
LIST
command
SGN
lunction— numeric
COPY
command
LOAD
command
SIN
function —numeric
COS
function — numeric
LOCATE
SOUND
siatemeni
DATA
statement
LOG
function— numeric
SPC<
function— special
DEC
function — numeric
LOOP
statement
SOR
function— numeric
DEF FN
statement
MIDS
function — string
SSHAPE
statement
DELETE
command
MONITOR
statement
STatus
reserved — numenc variatilo
DIM
statement
NEW
command
STOP
statement
DIRECTORY
command
NEXT
statement
STR$
lunction— string
DLOAD
command
ON GOSUB
statement
SYS
statement
DO
statement
ON GOTO
statement
TABI
function— special
DRAW
statement
OPEN
statement
TAN
lunction — numeric
DSAVE
command
PAINT
statement
TI
reserved— eumene vanable
END
statement
PEEK
function— numeric
TIS
reserved— string variable
ERR$
function — string
POKE
statement
TRAP
statement
function — numeric
POS
function— numeric
TROFF
statement
statement
PRINT
statement
TRON
statement
function — numeric
PRINT#
statement
UNTIL
statement
statement
PRINT USING
statement
USR
function — special
statement
PUDEF
slaiemeni
VAL
function — numeric
GET#
statement
RCLR
lunction— numeric
VERIFY
command
RDOT
VOL
statement
GOTO
READ
statement
WAIT
statement
GRAPHIC
statement
REM
statement
WHILE
statement
50
MCmicrocomputer n. 38 - febbraio 1985
omettendo tutti i parametri che non servo-
no (in pratica rimangono solo il tipo di
punto — scritto o cancellato — e le coordi-
nate). PAINT serve per colorare. SCALE
per modificare la scala nell'area grafica e
LOCATE per spostare l'origine di un nuo-
vo disegno in una certa posizione sullo
schermo. Attentamente va osservata la so-
fisticata funzione CIRCLE dotata di ben
nove parametri con cui. oltre che circonfe-
renze. ellissi ed archi di cerchio, possiamo
anche tracciare poligoni inscrivibili in un
cerchio come triangoli, esagoni, ottagoni,
ecc.. Per concludere questa parte ricordia-
mo SSHAPE e GSHAPE che ci permetto-
no di manipolare aree dello schermo trat-
tandole come variabili.
Il tutto è veramente notevole.
Hardware e periferiche
L'architettura interna di questa macchi-
na è molto più compatta rispetto ai modelli
precedenti grazie all'uso di un chip specia-
lizzato che si incarica da solo di svolgere
tutte le funzioni importanti e. se aggiungia-
mo i chip di Ram e di Rom insieme al
microprocessore 8501 (un'ulteriore riela-
borazione del 6502). contiamo solo cinque
circuiti integrati di grosse dimensioni, cioè
dai 28 ai 48 pin. Essendo, come già detto, le
più importanti funzioni gestite da un solo
integrato, mancano tutti i chip specializza-
ti come quelli di I/O (il Vie conteneva due
6522 ed il C 64 due 6526) ed altri per suono
e video, e ciò si risolve in una riduzione
delle dimensioni della scheda componenti
che assume le misure di circa 32 x 1 3 cm (le
precedenti erano 39 x 17 circa). Anche l'a-
limentatore cambia ed è anch’esso più
compatto essendo dotato di spina incorpo-
rata che gli permette di collegarsi diretta-
mente alla presa di corrente evitando un
ulteriore ed antiestetico cavo. Ai suoi capi,
sotto carico, abbiamo rilevato l'esatto va-
lore di tensione continua nominale indica-
to dalla casa e cioè 9.5 volt. Tale tensione
viene livellata a 5 volt dal solito 7805, al-
loggiato su di un dissipatore, e va poi ad
alimentare il circuito.
Completata la sintetica descrizione del-
l'hardware di base, vogliamo ora accenna-
re alla compatibilità delle vecchie periferi-
che con il C 16.
Abbiamo effettuato una prova di stam-
pa con la vecchia GP I00VC e tutto c
andato per il meglio. Lo stesso si è verifica-
to usando il Disk Drive 1541 dal quale
abbiamo letto e fatto girare alcuni pro-
grammi scritti per gli altri due modelli:
naturalmente si trattava di programmi che
non contenevano delle Peek o delle Poke.
Abbiamo inoltre provalo un drive doppio
compatibile non della Commodore, il Su-
per Disk Drive SD-2 MSD della Telav ed
anche stavolta le cose sono andate per il
meglio, riuscendo ad indirizzare ogni sin-
golo drive grazie ai comandi specializzati
descritti nell'articolo che ci vengono messi
a disposizione dal C 1 6, ed effettuare copie
di file o interi dischetti non protetti da un
elemento all’altro.
Per concludere, due parole sul nuovo
registratore, il 1531. Le prime differenze
che saltano agli occhi rispetto al modello
più vecchio sono la forma, più tondeggian-
te. ed il colore, lo stesso del C 16. Anche
all'interno troviamo delle novità: la mecca-
nica è più compatta e la scheda componen-
ti è diversa. Rimane l'integrato 7414N
(questa volta è un 74CI4N) mentre i due
operazionali vengono sostituiti da un uni-
co chip. Anche il numero dei componenti
discreti è molto minore, ma in definitiva lo
schema circuitale non dovrebbe essere tan-
to diverso. Dimenticavamo di dirvi che è
stato aggiunto un Led rosso che è attivo
durante la registrazione ed inoltre il cavo
che va al computer termina, all'interno del
registratore, con un connettore a 7 poli che
lo rende facilmente asportabile. Ulteriori
delucidazioni sulla compatibilità ve le da-
remo quando avremo sottomano uno dei
nuovi connettori per la prova.
Conclusioni
La macchina offre delle prestazioni mol-
to buone, che diventano davvero ragguar-
devoli se rapportate al prezzo, di gran lun-
ga il più basso della categoria. Il Basic sale
di parecchi gradini rispetto a quello impie-
gato sul Vie e sul 64 e ne rende l'uso decisa-
mente più agevole oltre che invitante; come
più volte ripetuto nel corso della prova,
l'aggiunta del set dedicato alla grafica, del
Monitor LM e la possibilità di gestire un
doppio drive ne fa una macchina completa
e competitiva (non solo per i novizi, ma
anche per gli esperti e assolutamente non
come ripiego). A causa della maggiore
compattezza, motivata dalla necessità di
contenere il prezzo, viene sacrificata la
porta utente, ma ciò per molti non costitui-
sce un handicap, e i più esperti sapranno
comunque sfruttare lo slot per le cartucce;
riguardo alla memoria. 1 2K non sono mol-
ti. ma forse non sono neanche pochi se si
pensa sia alla possibilità di sfruttare le rou-
tine grafiche e sonore già presenti nel siste-
ma che a quella di avere presto delle espan-
sioni (cosi come è avvenuto nel passato e
come assicura la Commodore) per questo
computer che quindi potrà contare su del
buon software cosi com’è avvenuto per il
64.
Resta ovviamente, in un mercato che va
sempre più verso la standardizzazione, il
problema del non standard a livello, ad
esempio, di interfacce; né si può dimentica-
re che la casa è rimasta praticamente sola a
lavorare su 6502 e derivati in un mondo
che. e più che mai con l'avvento degli
MSX. è ormai piuttosto decisamente o-
rientato allo Z-80. Ma Commodore è un
nome che può permettersi di puntare al
successo anche senza troppi... compagni di
standard. MC
MCmicrocomputer n. 38 - febbraio 1985
51
ACT
Apricot FI
di Maurizio Bergami
Dopo aver ollenulo un largo consenso con
l'Aprico!, un inieressaniissinw computer or-
gogliosamente definito "della (piarla gene-
razione" dai suoi progettisti. VA CT Interna-
tional lia recentemente allargalo la sua gam-
ma con due nuovi modelli, un desktop ed un
portatile, chiamati, senza eccessiva fanta-
sia, Apricot FI e Apricot Portahle.
In questa prova vi presentiamo il primo
dei due. un sistema rivolto al mercato busi-
ness dal costo, tuttavia, estremamente con-
tenuto.
In Inghilterra infatti ITI viene presentalo
come Vunico vero sistema professionale al di
sotto della fatidica barriera delle 1000 ster-
Eccone le caratteristiche principali: mi-
croprocessore 8086 a 16 bit. sistema opera-
tivo MS DOS. 128 o 256 K di memoria cen-
trale, floppy da 3,5" con capacità di 3 15 K
(720K con l'opzione doppia faccia / doppia
densità) ed un bel po ' di programmi applica-
tivi forniti assieme al computer.
Davvero niente male come biglietto da
Del fratello maggiore l'FI conserva poi la
filosofia progettuale, che tende a proporre
macchine non solo potenti, ma anche estre-
mamente "user friendly" . cioè in grado di
essere sfruttate dall'utente, per quanto ine-
sperto. senza problemi e n.el modo più imme-
diato possibile.
Descrizione generale
Il contenitore dell'FI ribadisce ancora
una volta che il fattore estetico alla ACT
non é considerato per nulla secondario.
Nonostante la forma inconsueta, che vede
la profondità prevalere nettamente sulle
altre due dimensioni, l' Apricot FI è bello e
soprattutto "pulito".
A provocare questa seconda impressio-
ne contribuisce soprattutto la scarsità di
connessioni tra i tre pezzi che costituiscono
il sistema. Esclusi quelli di alimentazione,
infatti, l'unico cavo visibile é quello del
monitor.
A pensarci bene forse l'FI esagera addi-
rittura: e la tastiera come è collegata? Ri-
sposta: attraverso un trasmettitore a raggi
52
MCmicrocomputer n. 38 - febbraio 1985
infrarossi, esattamente come il mouse, op-
zionale, previsto da tutto il software di
sistema.
Una soluzione indubbiamente molto in-
teressante, che però può, in qualche caso,
dare luogo a problemi, specie se la tastiera
non é orientata direttamente verso l’unità
centrale. A questo proposito vanno sotto-
lineate due cose: la prima è che il ricevitore
è piuttosto sensibile e non richiede un alli-
neamento perfetto con la tastiera, la secon-
da che il tutto o funziona o non funziona.
Non si tratta di un'osservazione banale,
ma vuole evidenziare il fatto che l'Fl utiliz-
za una sofisticata tecnica di rilevamento e
di correzione degli errori, che annulla in
pratica la probabilità di utilizzare un dato
ricevuto errato. Per dare un'idea dell'accu-
ratezza dei controlli effettuati diremo che
ogni lettera viene spedita come un pacchet-
to di 32 byte dei quali solo 8 servono a
rappresentarne il codice. Ciò significa, in
pratica, che il segnale o viene ricevuto ed
interpretato correttamente, o non viene ri-
cevuto affatto: pericolose vie di mezzo non
sono possibili.
Ad ogni buon conto con il computer è
fornito un cavo a fibra ottica che consente
il collegamento diretto con la tastiera (po-
trebbe esserci qualche problema, suppo-
niamo, usando più macchine nello stesso
ambiente).
Molto fastidiosa ci sembra l'impossibili-
tà di conoscere lo stato di carica delle 4
batterie stilo che alimentano la tastiera;
quando arriva il momento di cambiarle
ovviamente questa si blocca e non c'è mo-
do di capire se si è rotto tutto o semplice-
mente se sono scariche le pile fino a che
non si provvede alla loro sostituzione.
Visto che siamo in argomento, conti-
nuiamo a parlare della tastiera. Come si
può vedere in fotografia è molto estesa;
sono presenti tutti i tasti normali più tre
tastierini diversi; quello di edit, che com-
prende i tasti di Home, Clear, Insert, Dele-
te e le frecce per il movimento del cursore;
quello numerico, con anche i segni delle
quattro operazioni, il punto decimale, il
segno di percentuale e l'Enter, ed infine 10
tasti funzione, uno dei quali (Keyboard
Voice) è del tutto inutile essendo previsto
per il controllo della ricognizione del par-
lato sul Portable, che ha la stessa tastiera
dell'Fl.
Osservando più da vicino i tasti funzione
si notano diverse serigrafie inconsuete, po-
ste proprio sui bordi. Esse fanno riferimen-
to ad una praticissima peculiarità dell'Fl
che sostituisce, almeno parzialmente, il
Microscreen del "vecchio" Apricot. Tra-
mite i tasti funzione si può infatti accedere
ad una vera e propria calcolatrice dotata di
memoria, che viene attivata premendo il
tasto F4 preceduto dallo shift. Il display
della calcolatrice viene visualizzato sull'ul-
tima riga di schermo e scompare quando
viene premuto nuovamente F4.
MCmicrocomputer n. 38 - febbraio 1985
53
Le modalità d'uso sono esattamente
quelle di una calcolatrice classica, ma in
più vi è la possibilità di inserire sullo scher-
mo. al punto in cui si trova il cursore, il
risultato di un'operazione semplicemente
premendo il tasto Send.
Ciò risulta utilissimo all'interno di nu-
merosi programmi applicativi, come
spreadsheet o wordprocessor.
Per completare la descrizione della ta-
stiera non rimane che citare i quattro pul-
santini neri presenti in alto a destra. Il
primo effettua un reboot del sistema, con
la conseguente perdita di eventuali dati
non ancora salvati; per evitare scene di
disperazione dovute a pressioni accidenta-
li, il tasto diventa attivo soltanto dopo una
pressione continuativa di circa un sccon-
b »»mnmiiiiitni»n»iL
do. Il secondo tasto permette invece di fis-
sare la velocità di repeat dei tasti, il terzo di
cambiare data ed ora ed il quarto di bloc-
care la tastiera fino a che non viene premu-
to di nuovo.
Passiamo ora all’unità centrale. Sul pan-
nello frontale, oltre alla unità a disco ed a
quattro indicatori a led, troviamo due pic-
coli connettori che permettono il collega-
mento della tastiera o del mouse tramile il
cavo a fibra ottica già citato; sulla loro
destra, nascosto da una striscia di plexi-
glass scuro, vi è il fotodiodo che riceve i
segnali provenienti dalla tastiera.
Il retro presenta una serie di connettori,
tra i quali spiccano quelli dell'interfaccia
Centronics ed RS 232, Per il segnale video
sono previste due uscite, una RGB ed una
composita; la ACT può anche fornire, a
richiesta, un modulatore che permette il
collegamento di un normale TV color, ma
si tratta di una soluzione davvero sconsi-
gliabile, che non consentirebbe di apprez-
zare a pieno le eccellenti caratteristiche
grafiche dell’FI.
Sul lato destro della macchina, infine, è
visibile un connettore al quale possono es-
sere collegate tutta una serie di periferiche
e di espansioni, che comprendono tra l'al-
tro un disco rigido da 10 Mbyte.
L'ultimo elemento del sistema FI è na-
turalmente il monitor, che va acquistato a
parte. L'ACT propone nel suo catalogo tre
modelli diversi: due a fosfori verdi, rispetti-
vamente da 9" o 12", ed uno a colori di
altissima qualità, che utilizza un tubo Tri-
ACT Aprirvi FI
nitron della Sony. Nulla impedisce, natu-
ralmente, di sceglierne uno di marca diver-
L'alimentazione del monitor è affidata
ad un alimentatore esterno, che va comun-
que collegato all’unità principale. Si tratta
di un oggetto veramente orribile, degno
soltanto degli home più economici; chissà
come è scappata una simile bruttura in un
computer cosi bello!
L'hardware
Aprire l’Apricot FI è veramente un gio-
co da ragazzi: basta rimuovere due viti dal
pannello posteriore per liberare la parte
superiore del contenitore, che può cosi es-
sere rimossa senza problemi.
All'interno si notano le ampie scherma-
ture. che nascondono quasi completamen-
te la piastra principale. Nonostante le ap-
parenze accedere a quest'ultima è molto
facile, data la costruzione modulare
dell'FI: basta rimuovere l'alimentatore (di
tipo switching) e l'unità a minidischi, en-
trambe collegate alla main board da pratici
connettori, e sfilarla via. dato che non è
fissata da alcuna vite. Il tutto per la gioia
dei tecnici del servizio di assistenza, ma
anche dell'utente, dato che minore è il tem-
po di riparazione, minore è la fattura che si
vede presentare in caso di guasti.
Il numero di circuiti integrati utilizzato è
davvero elevato; contrariamente all'attua-
le tendenza l'ACT ha evitato di utilizzare
delle ULA nel progetto.
In alto a destra si trova un connettore in
grado di ospitare una scheda di espansione
senza dover obbligatoriamente ricorrere
ad un box esterno.
Al centro della piastra si vede il micro-
processore 8086; subito alla sua destra si
trovano le due EPROM che contengono le
routine di bootstrap. Ancora più a destra si
trova il banco di memoria formato, nella
versione in prova, da 32 chip da 64 Kbit,
per un totale di 256 K di RAM. Come
abbiamo accennato in apertura esiste an-
che una versione più economica, dotata di
soli (si fa per dire...) 128 K RAM,
Di tutta la RAM disponibile. 40 Kbyte
sono occupati dalla memoria video. L'Fl è
dotato di un'ottima grafica a colori: la ri-
soluzione dello schermo è di 640 x 256 pi-
xel, con un massimo di quattro colori con-
temporaneamente sul video, scelti da una
palette di sedici.
Una mancanza che si nota è quella dello
zoccolo per il coprocessore matematico
8087, zoccolo che invece esisteva sull' Apri-
cot. La scelta appare, tutto sommato, giu-
stificata dal basso costo dell'FI, rispetto al
quale il prezzo di installazione dell'8087
sarebbe sicuramente sproporzionato.
Software ed utilizzazione
Il sistema operativo fornito con l'Fl è
l'MS DOS versione 2.1 1; a parte possono
essere acquistati anche il CP/M 86 ed il
Concurrent CP/M , che erano standard sul-
l'Apricot.
54
MCmìcrocomputer n. 38 - febbraio 1985
ACT Aprico! FI
La scella dell'MS DOS. oltre a mettere
in mano all'utente un sistema operativo
potente e molto diffuso, significa anche
una parziale compatibilità con il PC IBM.
che. come è noto, adotta anch'esso l'MS
DOS.
Chi ha letto la prova dell' Aprico! appar-
sa sul numero di aprile '84 ricorderà pro-
babilmente il programma Manager; que-
sto programma "proteggeva" in un certo
senso l'utente dalla relativa complessità del
sistema operativo, consentendogli per e-
sempio di caricare i programmi applicativi
senza dover entrare in ambiente MS DOS.
Come idea non era allatto sbagliata, ma in
pratica si rivelava di efficacia un po' limita-
ta poiché il Manager era un po' troppo
macchinoso da usare.
Con l’FI l'ACT ha fatto un altro tentati-
vo. questa volta riuscito decisamente me-
glio. sviluppando una nuova interfaccia
verso l'utente chiamata Activity (per capi-
re il perchè del nome non tentate la tradu-
zione del termine inglese; pensate piuttosto
alle prime tre iniziali: ACTivity...).
Il programma di Activity permette, co-
me il vecchio Manager, di scegliere e far
girare un programma presente su disco op-
pure di utilizzare una delle utility di siste-
ma. ma lo fa in maniera decisamente più
immediata e. oseremo dire, simpatica.
In ambiente Activity vengono mostrale
sullo schermo una serie di icone, ognuna
delle quali rappresenta un programma o
una utility. Per selezionare il programma
desiderato basta spostare la freccia che ser-
ve da cursore sull'icona ad esso corrispon-
dente. utilizzando il tastierino numerico,
che in questo caso sostituisce i tasti di spo-
stamento del cursore, o. ancora meglio, il
mouse opzionale.
Le icone della zona inferiore dello scher-
mo corrispondono ad una serie di comandi
o programmi sempre presenti, come quelli
di configurazione del sistema o di copia dei
dischi. Una volta scelta un'opzione parti-
colare di solilo appaiono altre icone corri-
spondenti alle sotto-opzioni disponibili; in
pratica è possibile fare tutto semplicemen-
te selezionando una serie di icone successi-
Nella parte centrale dello schermo si tro-
vano invece le icone relative ai programmi
presenti sul disco inserito nel drive; cam-
biando disco si può infatti notare che le
icone inferiori rimangono immutate, men-
tre le altre cambiano a seconda dei pro-
grammi che il disco contiene.
Le icone che compaiono sullo scher-
mo dipendono dal contenuto del file
ACTIVITY.COM. nel quale si trovano
tutte le informazioni relative ai collega-
menti fra programmi ed icone. È possibile,
per l'utente, creare delle nuove icone ed
associarle ad altri programmi semplice-
mente disegnando le icone con l’apposi-
to editor fornito sul disco di sistema e
poi aggiungendo nuovi record ad
ACTIVITY.COM. Tutto il processo c
spiegato in modo abbastanza chiaro sul
manuale. Oltre ad Activity, vengono forni-
delli della gamma Aprico! anche a livello di
indirizzamento del video, nonostante il
formato dello schermo sia diverso per o-
gnuno.
Stranamente non viene fornito alcun lin-
guaggio di programmazione, segno che la
ACT vede l'FI come un oggetto rivolto più
al manager che al programmatore.
Conclusioni
Come al solito la prima cosa alla quale si
guarda quando giunge il momento di tirare
delle conclusioni è il prezzo.
Sia per quello che riguarda la versione
base che per la espansa siamo su cifre estre-
mamente concorrenziali, viste le caratteri-
stiche della macchina.
Abbiamo di fronte dunque un personal
versatile, estremamente comodo da usare,
con un'ampia dotazione di software di ba-
se e per giunta estremamente conveniente
in termini di vii denaro.
Peccalo per la mancanza del classico Ba-
sic. ma sul mercato è comunque disponibi-
le un'ampia scelta di linguaggi, ovviamen-
te Basic compreso.
A nostro parere, il potenziale acquirente
farebbe bene ad indirizzarsi subito verso il
modello espanso: con appena 400.000 in
più si hanno altri 128 K di RAM ed altri
300K sul dischetto. MC
ti assieme all'FI numerosi altri program-
mi. 1 più importanti sono senza dubbio i
tre applicativi della Sorcini: Super Writer,
SuperCalc e SuperPlanner. ai quali è riser-
vato un apposito manuale.
Dalla stessa Aprico! arrivano invece
Diary e Sketch, rispettivamente un'agenda
elettronica ed un sofisticato programma
per disegnare.
Per quanto riguarda la grafica l'Apricot
FI è dotato del sistema GSX già presente
sul suo predecessore; esso c una sorta di
sottosistema operativo che mette a dispo-
zione dell'utente una vasta serie di funzioni
grafiche; il suo pregio maggiore è quello di
permettere la compatibilità fra i vari mo-
MCmicrocomputer n. 38 - febbraio 1985
55
Lotus
Symphony
per PC IBM
Symphony è un nome che ormai dovrebbe
essere ben conosciuto a citisi occupa più che
superficialmente di piccola informatica, e
specialmente ad un attento lettore di MC.
Di esso infatti si è già parlato su queste
pagine altre due volte : con una breve notizia
sul numero 34 (ottobre 84) in occasione
della sua presentazione ufficiale, e con una
più estesa panoramica sul n. 37 del mese
scorso. E questa che state leggendo è la
prova, promessa appunto in quell'articolo.
Per chi invece ancora non ne sapesse nulla,
questa è un 'ottima occasione per aggiornar-
si sulle ultimissime tendenze del software
personale. Symphony è infatti il primo vero
esemplare delta nuova generazione di pac-
chetti detti multiapplicazioni: sofisticati
programmi che uniscono in un ambiente uni-
co e omogeneo te più comuni funzionalità di
elaborazione personale, integrate in un sub-
strato comune e manipolabili per mezzo di
finestre. Symphony. in particolare, dispone
delle funzioni di Spreadsheet . Data Base
Management System. Word Processor.
Communication Link e Business Graphics, e
quindi permette la massima versatilità in
quanto a gestione di dati, testi e immagini.
Ciò significa che con Symphony si può gesti-
re un data base i cui dati sono condivisi dallo
spreadsheet e dal word processor, oltre a
poter essere rappresentati in forma grafica ;
e tutto senza uscire dal programma, salvare
file intermedi od operare macchinose con-
versioni. E. soprattutto, senza necessità di
imparare comandi operativi differenti per
agire su ogni struttura, in quanto Symphony
mantiene consistentemente sintassi e seman-
tica dei comandi nelle varie operazioni.
Come si vede siamo piuttosto lontani dal
vecchio e glorioso sistema “VisiCalc +
Wordstar + Dbase II", che pure non è più
vecchio di tre anni. Se ci è consentito un
paragone stravagante. Symphony sta alla
sacra terna poc 'anzi citata come un attuale
impianto stereo coordinato sta alla canonica
accoppiata Thorens + Marantz + AR di
qualche anno fa. Nel senso che un insieme
armonico di moduli progettati espressamen-
te per funzionare in coordinazione è senz ’at-
56
MCmicrocomputer n. 38 - febbraio 1985
tro meglio ! almeno in teoria I di un'unione
di parli diverse e separate, ognuna specializ-
zala nella sua funzione ma probabilmente
affet te da problemi di compatibilità o comu-
nicazione. In teoria, dicevamo: ed infatti i
coordinali hanno dovuto aspettare molti an-
ni prima di essere accettati dai puristi come
impianti degni di essere ascoltati. Può essere
che una cosa del genere capili anche per i
nuovi software integrati: la prova che state
per leggere c/uindi potrà anche aiutarci a
capire la giusta collocazione di questo tipo di
prodotti, e se davvero ci faranno cambiare
modo di lavorare.
Come al solito cercheremo dì darvi un 'im-
pressione di massima sulle caratteristiche e
sulle capacità di Symphony. senza natural-
mente tentare di sostituirci al manuale e
quindi non entrando troppo in dettaglio sui
vari comandi: sperando che ciò possa aiutar-
vi a valutare se Symphony è ciò che fa per voi
Nascita di un'idea: 1-2-3
Cominciamo prendendo il discorso un
po' alla lontana. Partiamo dall' 1-2-3, un
prodotto software che fece molto parlare
di sé non più tardi di un anno fa. 1-2-3. il
primo prodotto della giovanissima Lotus,
era un primo abbozzo di ciò che ora è
Symphony. Si trattava infatti di uno
spreadsheet piuttosto evoluto, con un paio
di grosse novità rispetto a prodotti consi-
mili: la possibilità di gestire un limitato
data base e quella di produrre grafici com-
merciali quali istogrammi e diagrammi a
torta. La prima caratteristica, decisamente
nuova, derivava da una idea di righe e
colonne dello spreadsheet come un file for-
mato da record e campi. Ogni riga é un
record, ogni cella nell'ambito della riga (e
quindi ogni colonna) è un campo. In que-
sto modo è possibile organizzare un data
base in uno spreadsheet, e le operazioni su
un ambiente diventano possibili in termini
di operazioni sull'altro. Semplice ed effica-
ce. tanto che viene da chiedersi perché non
ci si fosse pensato prima. 1-2-3, comunque,
nasceva e si fermava qui; l'unificazione tra
data base e spreadsheet era totale e non si
parlava di "ambienti" né di finestre, anche
se vi era la possibilità di splittare lo scher-
mo in due parti puntate su zone indipen-
denti dello spreadsheet. Nonostante ciò e-
ra (ed é. essendo ancora supportato dal
produttore) un programma interessantissi-
mo e molto potente. E, soprattutto, con
un’idea di base decisamente promettente,
che. come vedremo, è la stessa che informa
tutta la struttura di Symphony.
Symphony: ambienti e finestre
Symphony sviluppa l'idea dell' 1-2-3 ag-
giungendovi inoltre il concetto di “am-
biente". Un ambiente è un modo di vedere i
dati in funzione delle operazioni che si vo-
gliono effettuare su di essi. Abbiamo detto
prima che una riga di dati nello spread-
sheet può essere vista come un record: nul-
la toglie però che possa essere vista, ad
esempio, anche come una normale riga di
testo. In altre parole, il medesimo insieme
di dati può essere pensato in modi diversi a
seconda di come ci fa comodo in un certo
momento: se ci serve per rappresentare
un'informazione di un archivio è un re-
cord. se ci serve per effettuare calcoli è un
serie di celle dello spreadsheet, se infine ci
serve per essere stampato in un documento
è una riga di testo. Questo è il concetto di
base di Symphony: un dato elementare od
un aggregato di dati non hanno un signifi-
cato assoluto, ma assumono significati di-
versi a seconda del contesto in cui li si
considera. Questi contesti si chiamano am-
bienti. e vengono realizzati per mezzo di
finestre. Una finestra è un'area dello scher-
mo che mostra una parte dell'insieme di
dati di cui si dispone, e tramite la quale si
può interagire con esso. Esistono diversi
tipi di finestre, tanti quanti sono gli am-
bienti disponibili: sono anzi le finestre a
determinare l'ambiente in cui si intende
lavorare e quindi le operazioni consentite
in un certo momento. Attraverso una fine-
stra di tipo Spreadsheet, ad esempio, si
vedranno i dati come celle e si potranno
impostare formule ed effettuare calcoli; at-
traverso una di tipo Data Base gii stessi
dati saranno visti come record di un file, e
si potranno inserire, cancellare o modifica-
re singole registrazioni; una finestra di tipo
Word Processor mostrerà i dati come righe
di testo, e permetterà di aggiungere, toglie-
re o modificare parole e frasi, mentre una
tipo Graphics visualizzerà gli stessi dati
sotto forma di grafici o diagrammi. In defi-
nitiva le finestre si possono considerare
alla stregua di “lenti" che di volta in volta
mostrano un aspetto dei dati raccolti in
Copyright (0 HI?. 1113, liti
lotus Dpvrtopnril Corporation
»— •: , Risortoli
imm-eùn?3
■moto 1.00 (0.03
lo oprioni disponibili di Synphony sono lo sopì»
occorro sostituirò il Disco Diooromo col Disco
Prrnoro Hit
• Ciudi intcrottivi
• dutoistni/iono su Synphony
• AppliCi/ioni oiiiunliuo
• Inpostmoni por lo commi
‘óoid* i , di'i“on
por inuiiro.
7.TIWJ Wiltft'iph lrin>ljte I
ffrnii-'ii'.iiiiiwiifiiimHiuirMiiJi
Synphony SoFtViir (opvrNht tt) IIP, ',11, 14 Ioli» Proci
MCmicrocomputer n. 38 - febbraio 1985
57
memoria; e quindi i vari ambienti sono
solo diversi modi di vedere la stessa cosa.
Conseguenza di ciò c che ogni cambiamen-
to apportato sui dati si riflette, automati-
camente ed istantaneamente, su tutti gli
ambienti. E siccome Symphony non pone
limite al numero di finestre apribili con-
temporaneamente sullo schermo l'utente è
in grado di controllare immediatamente gli
effetti su ogni ambiente di un intervento
effettuato in uno di essi.
Le altre caratteristiche di base
Un'altra caratteristica originale di Sym-
phony è quella di incorporare un sofistica-
to modulo di Communication ed emula-
zione di terminale; ciò permette di sfruttare
come fonte di dati non solo la tastiera ma
qualunque altro dispositivo in grado di
colloquiare tramite modem. Cosi ci si può
collegare ad un Itosi remoto, ad un servizio
di banca dati pubblico, ad un altro perso-
nal. e scambiare dati senza uscire dal pro-
gramma; col vantaggio che i dati ricevuti
entrano nella struttura di Symphony (sia
essa Data Base o Spreadsheet) direttamen-
te. senza dover passare per file di transito o
dover operare conversioni. I dati cosi ac-
quisiti risultano immediatamente disponi-
bili. come se fossero stati impostati da ta-
stiera.
Symphony poi è programmabile: ossia è
possibile creare strutture dette Macro for-
mate da sequenze di comandi di Sympho-
ny. richiamabili con la pressione di un ta-
sto. In questo modo si possono "congela-
re" e catalogare sequenze di operazioni di
tipo ripetitivo, per una più semplice esecu-
zione con minor possibilità di errori. Un
potente linguaggio di controllo per le ma-
cro mette inoltre l'utente in grado di rende-
re i suoi macroprogrammi piuttosto sofi-
sticati: ad esempio da una macro si può
chiamare un numero di telefono ed effet-
tuare il login in modo automatico.
Infine Symphony può far pieno uso dei
vari dispositivi grafici eventualmente di-
sponibili, schermo a parte, trasferendo i
suoi grafici su ploltero stampanti grafiche:
può operare conversioni di formato dei file
da/verso formati .WRK (formato Sym-
phony) DIF (Data Interchange Format,
ormai lo standard per il trasferimento di
dati fra pacchetti diversi), .VC (formato
VisiCalc) c .DBF (formato DBase II); di-
spone di funzioni di sicurezza a vari livelli,
per impedire l'accesso a determinate fun-
zioni alle persone non autorizzate; tiene
conto della data e dell'ora, eventualmente
anche nei calcoli: e crediamo che come no-
tizie introduttive possano bastare.
Possiamo a questo punto dedicarci alla
conoscenza ravvicinata con questo mostro
software, cominciando innanzitutto... dal-
l’esterno.
La confezione
Che la Lotus abbia voluto fare di Sym-
phony un oggetto originale appare chiaro
sin dal primo sguardo alla confezione.
Symphony si presenta in un contenitore di
plastica grigia asimmetrico e piuttosto
massiccio, formato da due sezioni dedicate
ad alloggiare una la custodia per i dischetti
e l'altra i manuali. I dischetti sono posti in
un lussuoso contenitore del medesimo ma-
teriale. organizzalo con apertura a libro e
chiusura ad incastro; al suo interno sono
incernierati quattro fogli di plastica tra-
sparente. ognuno dei quali dispone di due
tasche in cui alloggiare altrettanti dischet-
ti. Siccome il sistema è suddiviso su sei
Urna Symphony per PC IBM
dischi rimane il posto per due minifloppy
dell'utente. All'interno delle due sezioni
che formano il guscio del contenitore sono
inoltre ricavati gli alloggiamenti per la gui-
da di riferimento rapida e la mascherina di
plastica con le funzioni dei tasti definibili.
Nell’altro alloggiamento della confezione
trovano posto i manuali, quattro per l'e-
sattezza: una introduzione (110 pagine!), il
manuale How-To (come fare a...), il ma-
nuale di riferimento ed un glossario dei
termini e dei messaggi del programma.
Tutti, tranne l'ultimo, rilegati a spirale, ma
con una strana copertina dotata di una
larga bandella che forma una specie di co-
sta sul lato opposto alla spirale e che fun-
ziona egregiamente come segnalibro. Il
lutto è piuttosto lussuoso e ben realizzato,
tendente a colpire l'utente anche dal punto
di vista estetico.
Nota di cronaca, il tutto pesa quasi
quattro chili: se questo é il soft (!) ware...
La struttura e i requisiti hardware
Symphony viene, dunque, su ben sei
floppy. Niente paura, però: non c'è alcun
bisogno di swapping durante l'uso. Tutto il
programma è. infatti, contenuto in un solo
dischetto, e viene caricato per intero in
memoria. Ciò significa che Symphony do-
po il lancio non ha più bisogno di moduli
in linea c quindi non deve più andarsi a
leggere i dischetti, salvo il caso degli help
che vedremo fra un attimo. La soluzione di
caricare tutto in memoria, però, se da un
lato ha il vantaggio di liberare i drive, dal-
l'altro obbliga ad avere una quantità di
memoria centrale piuttosto elevata, tale da
contenere tutto il programma ed una
quantità ragionevole di dati. Allo scopo
servono almeno 320 Kb di RAM. che sono
proprio il minimo indispensabile: meglio
comunque averne di più. diciamo 5I2K.
per poter disporre di uno spreadsheet piut-
tosto ampio c per poter caricare in memo-
ria qualche applicazione supplementare
(ne parleremo tra poco). La nostra prova è
stata appunto condotta con un IBM-PC
con due drive da 360K e 5 1 2K di RAM. e ci
c sembrata la configurazione più opportu-
na. Symphony può comunque girare anche
Sull'XT, eliminando cosi anche la necessità
di avere in linea il dischetto di help.
Torniamo quindi ai sei floppy. Su di essi
si trovano, rispettivamente, il Symphony
vero e proprio, i messaggi di help. il pro-
gramma PrintGraph, il programma In-
stali. la libreria di driver necessari ad In-
stali ed un corso Tutorial ad autoistruzio-
ne. Di ognuno di essi vedremo l'uso al
momento opportuno. Notiamo intanto
che i primi due sono registrati in formato
protetto: è possibile copiarli, ma il lancio
dalla copia non è accettato in quanto il
programma è in grado di accorgersi della
differenza. Per questo Symphony può esse-
re caricato sul Winchester dell'XT, ma al
momento del lancio vuole trovare il di-
schetto originale nel drive, altrimenti si ri-
fiuta di partire.
58
MCmicrocomputer n. 38 - febbraio 1985
La prima cosa da fare una volta in pos-
sesso di Symphony é copiare tutti i dischet-
ti per sicurezza, trasferire l’MS-DOS sul
dischetto col programma stesso ed instal-
larlo tramite il programma Instali. L'in-
stallazione consiste semplicemente nel
creare un file (identificato con .DRV) con-
tenente i moduli "driver", ossia le routine
di controllo dei dispositivi hardware di cui
è dotato il particolare sistema a disposizio-
ne. Il dischetto Instali Library contiene
tutta una serie di driver, ed il programma
Instali non fa altro che scegliere quelli op-
portuni in base alle risposte che l'utente dà
ai vari menu di opzioni. Il file .DRV (che
per default si chiama LOTUS ma potrebbe
avere qualunque altro nome) deve essere
messo nello stesso disco del programma,
cosi che questo possa caricarlo in memoria
al momento del lancio. Al termine dell'in-
stallazione conviene proteggere i dischetti
dalla cancellazione con le apposite linguet-
te autoadesive, onde evitare spiacevoli in-
cidenti.
E adesso lavoriamo
Dopo tanto parlare possiamo finalmen-
te cominciare a fare qualcosa. Symphony
si può lanciare in più modi; contestualmen-
te al boot oppure no.
Nel primo caso basta accendere la mac-
china col disco nel drive (se abbiamo tra-
sferito il sistema sul disco di Symphony). e
l'apposito file AUTOEXEC.BAT si occu-
pa di lanciare il programma; altrimenti do-
po il boot si può digitare Symphony oppu-
re Access. Nel primo caso si lancia solo
Symphony, nel secondo caso ci si ritrova in
un metaprogramma (Access, appunto) dal
quale, tramite menu, si possono lanciare
sia Symphony che programmi ed esso col-
legati. passando dall'uno all'altro senza
mai dover tornare all'MS-DOS. Gli altri
programmi accessibili sono PrintGraph.
che esegue il dump dei grafici verso plotter
e/o altri dispositivi di hardcopy su carta, e
Translate, che permette le conversioni di
formato dei file di lavoro come accennato
in precedenza.
Supponiamo comunque di aver lanciato
Symphony in uno qualunque dei modi
possibili. Ci si trova subito in ambiente
Sheet. ossia foglio elettronico. La struttura
dello schermo, mantenuta consistentemen-
te in tutti gli ambienti, è la seguente: le
prime due righe (dette pannello di control-
lo) mostrano l'ambiente in cui ci si trova ed
il modo in cui si sta lavorando, il menu di
comandi disponibile con le spiegazioni dei
singoli comandi ed infine posizione del
cursore c valore su cui è puntato. Tutte
queste indicazioni non appaiono contem-
poraneamente, ma in certi momenti alcune
scompaiono e vengono sostituite da altre,
in modo da mantenere in vista sempre e
solo le notizie più importanti nella fase in
cui ci si trova; ed inoltre qualcuna di esse
può essere leggermente diversa in funzione
dell'ambiente in cui ci si trova. Le ultime
due righe dello schermo contengono data
ed ora costantemente aggiornate (lette dal-
le apposite locazioni del DOS), segnali che
indicano quali interruttori della tastiera
sono attivi (il PC I BM non ha infatti segna-
lazioni di Caps Lock. Num Lock e Scroll
Lock), altri segnali di avvertimento o mes-
saggi di errore e una traccia di dove ci si
trova nella complessa struttura ad albero
dei vari menu. Le venti righe centrali sono
invece lo spazio di lavoro vero e proprio,
nel quale si possono aprire finestre, ci si
muove col cursore, si impostano valori ed.
insomma, si compiono tutte le operazioni
con i dati. Le funzioni accessorie per l'im-
postazione dei comandi si ottengono per
mezzo dei tasti speciali e di quelli definibili
MCmicrocomputer n. 38 - febbraio 1985
59
di cui è dotata la tastiera del PC. L'accesso
ai menu con i vari comandi si ottiene tra-
mite i tasti definibili F9 c FIO. IL tasto F9
fa entrare nel cosiddetto menu di servizio
(Services), nel quale si hanno a disposizio-
ne comandi di portata generale ed indipen-
denti dall'ambiente: operazioni sulle fine-
stre, sui file, opzioni di stampa e di configu-
razione. Il tasto FIO è invece dipendente
dal contesto, nel senso che dà accesso ad
un menu differente a seconda dell'ambien-
te in cui ci si trovava al momento della
chiamata: ognuno di questi menu contiene
tutti i comandi disponibili in quell'ambien-
te. Gli altri tasti svolgono delle funzioni
particolari nei vari contesti, tranne FI che
richiama gli help. ed è attivabile sempre e
comunque. Fra i tasti non definibili, ESC
ha sempre la funzione di UN DO. ossia di
tornare indietro un passo o eliminare una
condizione di errore; i tasti di cursore, Ho-
me, Page Up, Page Down ed End manten-
gono gli ovvi significati di spostamento ed
infine Ins e Del permettono correzioni nel-
le stringhe impostate. Il tasto Alt é usato
come shift alternativo per ulteriori funzio-
ni (ad esempio richiamo di Macro), mentre
lo Scroti Lock fa si che sia la finestra a
scrollare dietro il cursore anziché essere il
cursore a spostarsi nella finestra.
Le finestre sono zone di schermo rac-
chiuse da una linea ed identificate da un
nome scelto dall’utente. La linea che rac-
chiude la finestra (eliminabile se si vuole)
serve a Symphony per presentare diverse
informazioni sulla finestra stessa: oltre al
nome vi compaiono riferimenti inerenti
all’ambiente di lavoro, quali numero di ri-
ga e colonna per Io spreadsheet o margini
ed intervalli di tabulazione per il word pro-
cessor. Sullo schermo possono essere aper-
te più finestre , anche di tipi diversi: natu-
ralmente però si può lavorare solo su una
finestra per volta. Quella in cui si sta lavo-
rando si chiama finestra attiva e si distin-
gue dalle altre perchè è identificata con una
doppia linea sul lato inferiore. Per passare
da una finestra ad un’altra si può usare un
comando accessibile del menu Services o,
più semplicemente, premere il tasto F6: ad
ogni pressione ci si sposta in una finestra
diversa, scorrendo una alla volta tutte le
finestre aperte. Notiamo che la disposizio-
ne geometrica delle finestre sullo schermo
può essere qualsiasi, e le finestre possono
anche sovrapporsi l’una all’altra, in parte o
completamente; ci pensa Symphony a
"portare in primo piano", ossia sopra alle
altre, la finestra attiva. La struttura e le
modalità di rappresentazione di ogni fine-
stra sono stabilite dall’utente, e memoriz-
zate da Symphony nei cosiddetti Settings
Sheets; questi possono venire creati e cata-
logati indipendentemente dalle altre ope-
razioni. e successivamente associati alla fi-
nestra desiderata. Il nome del Settings
Sheet appare nella riga inferiore della fine-
stra sul lato sinistro, mentre sul lato destro
si trova il nome dato alla finestra stessa.
Naturalmente i Settings Sheet variano a
seconda dell’ambiente cui si riferisce la fi-
nestra, ed esistono anche per oggetti che
non sono finestre: ad esempio il Global
Settings Sheet riguarda le caratteristiche
globali del programma ed il Print Settings
Sheet quelle della stampante. Più finestre
possono condividere lo stesso Settings
Sheet ed avere, quindi, stesse modalità di
rappresentazione.
Vista quindi la cosa nelle sue linee gene-
rali passiamo ad una breve panoramica sui
vari ambienti disponibili, con le varie fun-
zioni ed i comandi relativi.
La finestra Sheet
La finestra di tipo Sheet (spreadsheet) è
la principale risorsa di Symphony. In essa
il programma alloca ed utilizza aree di la-
voro che gli servono per gestire dati negli
altri ambienti, oltre ad essere naturalmente
a disposizione dell'utente per i suoi calcoli.
In questo ambiente il pannello di controllo
mostra le coordinate della cella su cui è
puntato il cursore ed il suo contenuto “ve-
ro", ossia la formula o il valore che vi sono
contenuti.
Caratteristiche collaterali a parte, l'am-
biente Sheet è decisamente potente di per
sé: l'area pontenzialmente utilizzabile è di
256 colonne per 8192 righe, mentre quella
Lotus Symphony per PC IBM
effettivamente disponibile dipende dalla
quantità di RAM installata. I calcoli ven-
gono effettuati con quattordici cifre signi-
ficative. ed è possibile stabilire il formato
di ogni cella singolarmente con moltissime
opzioni. Inoltre è disponibile un parco di
funzioni particolarmente complesso che
include funzioni matematiche avanzate
(trigonometria, funzioni trascendenti),
trattamento di stringhe (ricerca e sostitu-
zione della sottostringa, conversioni strin-
ga-numero- ASCII, conversioni maiusco-
lo-minuscolo), funzioni statistiche (numeri
casuali, somma, media, varianza, deviazio-
ne standard), funzioni finanziarie e perfino
calcoli con date e tempi! Una caratteristica
assai interessante, già presente in 1-2-3. è
che il programma nel ricalcolo del foglio
non procede "stupidamente" per righe o
per colonne, ma tiene conto deile relazioni
iogiche fra le celle, e quindi calcola per
primi quei valori che a loro volta servono
per altri calcoli, indipendentemente dalla
posizione relativa (geometrica) delle celle
in questione. Ciò permette di non preoccu-
parsi della disposizione geometrica delle
celle nell'area di lavoro, ma anche e soprat-
tutto di definire formule circolari o ricorsi-
ve, ossia formule che dipendono da se stes-
se: il programma se ne accorge (anche
quando la ricorsività è estremamente me-
diata!) e si limita a segnalare il fatto accen-
dendo un particolare flag sullo schermo: in
questo caso un'apposita opzione di confi-
gurazione permette di definire il numero di
cicli di cui debba essere composto ogni
ricalcolo (da I a 50), per permettere di
trarre la massima utilità dal calcolo di fun-
zioni iterative convergenti. Nel caso servis-
se, comunque, si può anche impostare il
normale ricalcolo geometrico per righe o
per colonne, ed in questo caso un’eventua-
le circolarità viene ignorata.
C’è da dire che nonostante l’indubbia
complessità delle operazioni che può svol-
gere, Symphony mantiene una notevole
velocità di calcolo e, soprattutto, una "fur-
bizia" impressionante: le più astruse rela-
zioni ricorsive non lo sgomentano, le circo-
larità più nascoste lo lasciano imperturba-
bile. Con il suo spreadsheet si possono fare
cose veramente molto complesse: tanto che
un nostro amico, medico ricercatore, dopo
una mezz’oretta di incredibili smanetta-
MCmicrocomputer n. 38 - febbraio 1985
Lotus Symphony per PC IBM
menti, ha esclamato laconicamente: “ma
con questo coso ci si crea la vita!”...
La finestra Doc
La finestra Doc (Documenti è quella in
cui Symphony lavora come word proces-
sor. I comandi disponibili sono quelli u-
suali di inserimento e cancellazione di let-
tere. parole e blocchi, ricerca e sosti-
tuzione. movimento, giustificazione a ban-
diera. centrale o a blocchetto e cosi via.
comprendendo anche il controllo della la
stampante. Il funzionamento è del tipo
What-You-See-Is-What-You-Get, ossia
ciò che si vede sullo schermo è esattamente
quello che finirà sulla carta. Una larga par-
te la fanno i tasti definibili e speciali, spe-
cialmente quelli relativi ai movimenti del
cursore. Quando si lavora in una finestra
Doc. sul pannello di controllo appaiono
informazioni sulla posizione del cursore
nel testo, mentre nella riga superiore del
bordo della finestra stessa appaiono le po-
sizioni di tabulazione ed i margini. Da no-
tare che Symphony vede il testo come un
insieme di Label (etichette) dello spread-
sheet, per cui bisogna stare attenti a non
sovrascrivere eventuali celle già riempite,
cosa che si fa allocando per il documento
un'area inutilizzata del foglio; sempre per
questo motivo nel pannello di controllo
compare fra le indicazioni di posizione an-
che la coordinata della cella su cui sarebbe
puntato il cursore se fossimo nello spread-
sheet (o. che è lo stesso, della cella in cui
risiede il carattere su cui è puntato il curso-
re).
La finestra Form
La finestra Form (modulo) è quella rela-
tiva alla gestione del data base. Il nome
deriva dal fatto che. una volta definita la
struttura dei campi del data base. Sympho-
ny crea e visualizza un “modulo" su misura
per quella struttura, e per inserire i dati
basta "riempire le lineature" del modulo
stesso. Symphony è in grado di effettuare
sofisticati controlli di correttezza all'atto
dell'Inserimento dei dati, e rifiutare quelli
incoerenti con le informazioni ricevute; i-
noltre può. sempre al momento dell'inseri-
mento dei record, effettuare conversioni di
formato (scalatura dei valori numerici,
formato delle date o delle stringhe) ed ese-
guire calcoli fra campi per ottenere il valo-
re di altri campi del record.
Una volta costituito il data base è possi-
bile effettuare sui record sofisticate funzio-
ni di ricerca e/o estrazione, eseguire ordi-
namenti. stampare rapporti e prospetti con
totali a rottura di controllo, e perfino ela-
borare i dati con criteri statistici per calco-
lare medie, varianze e deviazioni standard
su valori estratti in base a particolari crite-
ri. È possibile l'estrazione/fusione dei da-
ti del data base con quelli dello spread-
sheet, nel senso che record estratti dall'ar-
chivio possono diventare celle dello
spreadsheet e. viceversa, una zona dello
spreadsheet può automaticamente essere
incorporata nell'archivio.
La finestra Graph
La finestra Graph (Graphics) è quella in
cui si possono tracciare grafici a partire dai
dati dello spreadsheet. Le opzioni disponi-
bili sono moltissime; sei variabili dipen-
denti più una indipendente, sei tipi di grafi-
ci (a linee, a barre, a barre sovrapposte,
cartesiani, a torta e a differenza di valori),
a colori o a tratteggio, su scale lineari o
logaritmiche, con o senza "griglia"; è pos-
sibile definire titoli, etichette, valori di sca-
la, legende, anch'esse prese dallo spread-
sheet; e Symphony stesso è in grado di
inserire opportune grandezze di default
il grafico appare da solo!
quando necessario (ad esempio effettua la
scalatura automaticamente e scrive sull'as-
se y l'unità di misura appropriala; centi-
naia. migliaia, milioni - in lettere!).
Le modalità di visualizzazione dei grafi-
ci sono molto influenzate dal tipo di hard-
ware disponibile. Con la scheda colore
IBM si dispone di tre colori (oltre al nero)
in media risoluzione, e perdipiù non si pos-
sono visualizzare i grafici contemporanea-
mente alle altre finestre, ma bisogna com-
mutare dall'uno all'altro tipo di visualizza-
zione; oppure si può avere tutto insieme,
ma i grafici diventano in bianco e nero.
Con altre schede in commercio le cose van-
no meglio: ad esempio le foto che illustra-
no questo articolo sono state fatte con una
scheda Plantronics. la quale dà la possibili-
MCmicrocomputer n. 38 - febbraio 1985
61
là di visualizzare grafici in quattro colori
contemporaneamente ai testi.
I grafici, una volta messi a punto, posso-
no venire salvati su disco (suffisso .PIC)
per essere utilizzati dal programma Print
Graph il quale é in grado di trasferirli su di
un plotter od una stampante grafica per
avere una hardcopy di qualità.
La finestra Comm
E vediamo infine la finestra Comm
(Communication), ultima non perché me-
no importante, ma in quanto poco utilizza-
bile in queste nostre lande dove la Telema-
tica dorme assieme a Biancaneve nel mon-
do delle favole...
In una finestra di tipo Comm si possono
definire tutte le caratteristiche del modem
in uso e del tipo di protocollo prescelto,
naturalmente riferendosi ai più diffusi
standard americani. Tra l'altro Symphony
è anche in grado di effettuare l'autodial e
l'autologin, ossia chiamare un host di cui
conosca il numero ed agganciatisi instau-
rando il collegamento; ed è anche capace di
autoanswer (modem permettendo), ossia
di rispondere automaticamente alle chia-
male che chiedono un collegamento. Una
volta aperta una finestra di tipo Comm si
può tranquillamente tornare a lavorare
sulle altre: Symphony monitorerà conti-
nuamente la linea, avvertendo della situa-
zione (eventuali chiamate in arrivo); in
questo caso basterà tornare alla finestra
Comm per svolgere le operazioni del caso.
Utilizzazione
La descrizione precedente è stata neces-
sariamente piuttosto sintetica; e d'altra
parte non poteva non essere cosi: i manuali
messi insieme superano le 900 pagine! Cer-
cheremo quindi di colmare le maggiori la-
cune con queste impressioni d’uso.
Innanzitutto è necessario esprimere la
massima lode all'ingegnerizzazione del
programma, in particolare per quanto ri-
guarda l'interfaccia utente. Symphony é
un prodotto incredibilmente user-friendly,
che si adopera nelle sue linee essenziali
quasi senza leggere i manuali. Merito di ciò
è la sua semantica chiara e consistente e
l'ottima struttura dei menu autoesplicativi
su due righe (già dell’ 1-2-3), di cui la prima
elenca i comandi disponibili e la seconda
riporta una breve spiegazione del coman-
do puntato dal cursore. Grazie a questo
accorgimento è semplice impartire qualsia-
si comando: basta spostarsi con i tasti di
freccia sull'opzione desiderata e premere
return, per entrare in un sottomenu dalla
stessa struttura; cosi, guidati dalla struttu-
ra ad albero, si raggiunge in breve il co-
mando giusto. I comandi però possono
anche essere impartiti con le iniziali delle
opzioni dei menu, e ciò avvantaggia l'uten-
te abituale che può evitare di perdere tem-
po nella "navigazione" fra i menu. Un e-
sempio: per salvare il lavoro su disco si
entra nel menu Services (col tasto F9) e poi
si scelgono gerarchicamente le opzioni File
(menu di gestione dei file) e Save; ma si può
più brevemente premere F9 F S, a tutto
vantaggio della brevità.
Un'altra cosa veramente degna di nota è
la struttura degli help. Premendo FI Sym-
phony va a cercare sull'apposito dischetto
(che deve quindi essere in linea) uno scher-
mo che riporta informazioni e suggerimen-
ti relativi alla fase in cui ci si trova (Thelp è
infatti sensibile al contesto); da questo
schermo , senza più uscire dall'help, si può
continuamente passare a tutta una catena
di schermi collegati da una serie di riferi-
menti incrociati dalla complessità incredi-
bile.
Cosi si dispone praticamente di un ma-
nuale sullo schermo, ed oltretutto di un
manuale intelligente che ci propone solo le
parti in qualche modo collegate con ciò che
stiamo facendo. Premendo ESC ci si ritro-
va nel punto esatto del lavoro in cui si era
invocato Thelp.
Molto positiva anche la presenza, fra i
dischetti di Symphony, di un corso rapido
ad autoistruzione; il corso presenta alcune
semplici sessioni operative su Symphony,
ognuna inerente ad un particolare argo-
mento. L'utente "esegue" ciò che gli viene
richiesto e cosi ha la netta sensazione di ciò
che accade; viene inoltre avvertito di even-
tuali errori di impostazione, o comunque
di tentativi di operazione diversi da quelli
previsti.
A prescindere da tutto ciò, lavorare con
Symphony è un vero piacere. L'uso dello
spreadsheet si apprende subito, un po' me-
no forse quelli del word processor (specie
se si c già abituati ad usarne uno diverso) e
del data base. Una volta imparati i coman-
di principali, però, si va che è un piacere.
La cosa fondamentale da tenere a mente è
che lo spazio di memoria non è illimitato, e
a furia di riservare spazio qua e là per i vari
ambienti si corre il rischio di trovarsi un
po’ slrettini. Per quanto riguarda i grafici,
la prova di Symphony è sempre avvenuta
con la scheda IBM, della quale non possia-
mo non notare la scomodità nell'uso impo-
sta dal continuo salto da una pagina all'al-
tra per vedere le figure. Una scheda tipo
Hercules o Plantronics (come quella usata
per le foto) è tutta un'altra cosa. A propo-
sito di foto: come potete notare le scherma-
te sono tutte in italiano. Infatti abbiamo
avuto a disposizione dall'importatore, giu-
sto per il tempo del servizio fotografico,
una pre-release di Symphony in italiano.
Dobbiamo dire che il risultato ci è sembra-
to veramente buono, superiore forse all'a-
spettativa, e comunque molto serio e pro-
fessionale. Crediamo che la versione nazio-
nale, unita alle possibilità di programma-
zione, possano fare di Symphony uno stru-
mento utile e potente anche in un ufficio
con personale inesperto di calcolatori.
Infine c'è da dire che nonostante tutti gli
sforzi fatti dalla Lotus per semplificarne al
massimo l’uso, Symphony è un program-
ma talmente mastodontico e con talmente
tante possibilità che lo si può conoscere
bene solo dopo un lungo tempo di lavoro
costante.
Conclusioni
Siamo finalmente giunti alle conclusio-
ni. Bene, ci sembra che le valutazioni deb-
bano essere solo positive. Symphony è un
programma veramente ben pensato e ben
realizzato, efficiente, efficace e perfino
semplice da usare. Certo, non lo si può
imparare a fondo in due giorni, ma è anche
vero che si è in grado di cominciare ad
usarlo in un pomeriggio.
Riguardo al prezzo, ci sembra più che
giustificato alla luce delle potenzialità e
delle prestazioni. L'unica perplessità rela-
tiva alTutilizzabilità riguarda solo la sezio-
ne comunicazioni: e non per colpa del pro-
gramma, ma dell'Italia, che ancora non si
decide a varare leggi e programmi sulle reti
di comunicazione.
Per il resto pensiamo che Symphony sia
il modello di programma del futuro, o me-
glio di ciò che le macchine del futuro devo-
no fare: calcoli, gestione di dati, testi ed
immagini, scambio di informazioni con al-
tre macchine. Tutto semplicemente e con
rapidità, lutto mediante pochi tasti premu-
ti su un computer da scrivania. MC
62
MCmicrocompuler n. 38 - lebbraìo 1985
• Personal Computer IBM
■Personal Computer
Portatile IBM
I • Personal Computer IBM AT
Scegliere il tuo PC IBM è facile.
Dove sceglierlo,
>
ormai è ancora piu facile.
r ==.= =
1
PERSONAL COMPUTER
■bit computerò
Roma via Flavio Domiziano. 10 - tei. 06.5126700/5138023
Roma - Via F. Satolli. 55157159 - tei. 06.638609616386146
Roma - via Tuscolana, 350/350a - tei. 06.7943980
Roma - via Nemorense. 14/16 - tei. 06.858296
Roma - viale Jonio. 3331335 - tei. 06.81 70632
PUNTI DI DIMOSTRAZIONE:
Gaeta ■ lungomare Caboto. 74 - tei. 0771.470168
Latina - via A. Diaz, 14 - tei. 0773.495285
Viterbo - via Palmanova. 12c - tei. 0761.223977
...il tuo computer shop
dietro l’angolo.
COMPUTER
neb
Caratteristiche
Melbourne Drow
per Spectrum
di Mau rizio Berga mi
Melbourne Draw è una sofisticata utility
per disegnare, scritta per lo Spectrum 48 K
da Philip Mitchell, un programmatore cono-
sciuto praticamente da tutti i possessori di
questo computer per essere stato l'autore
deH'Hobbit. il popolarissimo gioco di avven-
tura tratto dall'omonima libro di Tolkicn.
L 'obiettivo principale di Melbourne Draw è
quello di permettere la creazione e l'archi-
viazione di schermate grafiche a colori con
la maggiore facilità possibile: il programma
consente inoltre di definire e salvare come
file di dati i 21 caratteri grafici di cui è
dotato lo Spectrum.
Appena caricato, Melbourne Draw va
in autorun. presentando un menu tramite
il quale si può iniziare a disegnare — sia
sullo schermo vuoto che su una figura pre-
cedentemente caricata in memoria — op-
pure salvare su nastro la schermata o gli
UDG già definiti. L'impiego dei microdri-
ve non è previsto, tuttavia è possibile mo-
dificare con facilità la parte in Basic del
programma, accedendovi con l'opzione
(e), in modo da effettuare i salvataggi sulle
unità a microcartuccia.
Premendo il tasto P si può cominciare il
disegno. La prima cosa da osservare è che
esso va eseguito praticamente in due fasi;
nella prima si agisce sui singoli pixel, men-
tre nella seconda si definiscono gli attribu-
ti.
Melbourne Draw, infatti, non consente
di disegnare immediatamente la figura a
colori; si può definire un colore globale di
1NK e uno di PAPER, ma non è possibile
disegnare ad esempio cinque pixel in rosso
e poi subito altri cinque in verde: tutto il
disegno viene eseguito infatti senza modifi-
care l’area degli attributi. Successivamente
le varie parti possono essere colorate sce-
gliendo gli attributi dei singoli caratteri.
La cosa non è affatto una limitazione
come potrebbe sembrare; visti i problemi
che presenta lo Spectrum in termini di riso-
luzione di colore si tratta, anzi, della mi-
gliore soluzione possibile.
I modi di editing, dunque, sono due: nel
primo (SCREEN) si influenza l'area di
schermo, mentre nel secondo (ATTR)
quella degli attributi. In entrambi i modi si
agisce tramite un cursore, rappresentato
da un pixel o da un carattere lampeggiante.
64
MCmicrocomputer n. 38 - febbraio 1985
che può essere spostato con i tasti
Q,W,E,A.D,Z,X,C nelle quattro direzioni
cardinali ed in diagonale.
Il cursore si può trovare in uno di questi
quattro stati: SKIP. SET. RESET ed IN-
VERT. Nel primo stato si muove senza
modificare il disegno sottostante, nei se-
condi tre lascia invece una traccia che di-
pende dallo stato attivo: in SET "accende”
i pixel sui quali passa, in RESET li “spe-
gne". in INVERT infine accende quelli
spenti e viceversa. Questo ovviamente se ci
si trova in modo SCREEN; in modo
ATTR il cursore non disegna, ma colora
carattere per carattere.
Sia in modo SCREEN che in ATTR le
ultime due linee dello schermo formano la
"information window”, una zona che con-
tiene una serie di informazioni, tra le quali
la posizione del cursore, relative allo stato
corrente del programma.
La information window può essere spo-
stata in alto per permettere di disegnare
anche nella zona che normalmente occupa,
in ogni caso essa non influenza il disegno,
in quanto il programma non agisce diretta-
mente sulla pagina video, ma su una sua
copia posizionata in memoria a partire
dall'indirizzo 32768.
Per aiutare il disegnatore a tenere conto
delle limitazioni relative all'uso del colore,
in modo SCREEN si può disegnare su due
griglie, formate da blocchi grandi ciascuno
una posizione carattere, oltre che sulla
normale pagina bianca.
L'effetto griglia viene ottenuto alternan-
do un carattere normale ad uno BRIGHT:
usando la prima griglia non si vedono in
pratica gli attributi ed il programma usa in
Produttore:
Melbourne House
Church Yard, Tring
Herlfordshire HP 23 5LV U.K.
ogni caso un INK nero ed un PAPER
bianco, mentre con la seconda è possibile
vedere la figura con i suoi colori. La solu-
zione più consigliabile è quella di disegnare
sulla prima griglia, disattivandola di tanto
in tanto per vedere come si presenta la
figura con gli attributi già definiti.
Purtroppo l'unica forma di disegno con-
sentita da Melbourne Draw è quella a ma-
no libera; il programma manca infatti to-
talmente di qualsiasi funzione che permet-
ta di ottenere almeno le forme geometriche
elementari, come le linee ed i cerchi.
In molti casi ciò costituisce un problema
piuttosto grave: per tracciare anche un
semplice cerchio bisogna possedere una via
di mezzo tra l'abilità di Giotto e la pazien-
za di Giobbe!
Una buona idea può essere allora quella
di "abbozzare" il disegno in Basic, utiliz-
zando le normali DRAW e CIRCLE, sal-
varlo su nastro e poi caricarlo su Melbour-
ne Draw per completarlo e rifinirlo. Nulla
impedisce poi di effettuare il lavoro preli-
minare con un'altra utility per il disegno,
come il GraphicComp pubblicato nella ru-
brica dedicata al software Spectrum sul
numero di luglio/agosto; in questo modo
la fatica è davvero minima.
Per farsi perdonare almeno parzialmen-
te questa mancanza Melbourne Draw pos-
siede una potente e rapidissima funzione
FILL, che effettua la campitura di qualsia-
si area chiusa entro la quale si trovi il cur-
sore. Prima di usarla é necessario verificare
che la zona da riempire sia effettivamente
chiusa: basta un buco, per quanto minu-
scolo. sul bordo perché la routine prosegua
la sua opera anche all’esterno, con risultati
spesso irreversibili.
Molto divertente, anche se di utilità ab-
bastanza ridotta, è poi la funzione di RE-
VERSE, che ruota lo schermo intorno
all’asse verticale.
Per poter realizzare una figura precisa
anche nei minimi dettagli Melbourne
Draw consente l'ingrandimento del dise-
gno di un fattore 4 o di un fattore 16. In
questo caso un apposito indicatore, pre-
sente nella information window. consente
di vedere la zona sulla quale si sta lavoran-
do; il passaggio da una zona all'altra avvie-
ne automaticamente quando si sposta il
cursore.
MCmicrocomputer n. 38 - febbraio 1985
65
L'ingrandimento dello schermo è possi-
bile sia quando si agisce sui singoli pixel
che sugli attributi; in modo ATTR, tutta-
via, oltre ad essere meno utile, provoca un
certo fastidio a causa del lampeggio irrego-
lare del cursore.
Un'altra funzione molto interessante è
quella di scroti, che fa muovere la zona
schermo o quella degli attributi in una
qualsiasi delle direzioni di spostamento del
cursore.
Lo scroll viene effettuato con la tecnica
del wrap-around; in altre parole lo scher-
mo viene considerato come se fosse una
superficie sferica, e quello che esce da una
parte rientra dalla parte opposta.
L'ultima possibilità offerta da Melbour-
ne Draw nella manipolazione dei disegni è
l'espansione o la riduzione della figura, da
non confondere con l'ingrandimento di cui
abbiamo parlato sopra e che serve a facili-
tare la definizione dei particolari. Le ope-
razioni di espansione o di riduzione tra
l'altro sono irreversibili, quindi, prima di
tentarle, è un'utile precauzione salvare l'o-
riginale su nastro, per non dover rifare
lutto da capo in caso di ripensamenti.
La più utile tra le due funzioni è sicura-
mente quella di riduzione, che può essere
sfruttata, ad esempio, per ottenere con
maggiore precisione scritte o marchi parti-
colari. disegnandoli a dimensioni più gran-
di del naturale per poi rimpiccolirli.
Fino ad ora abbiamo sempre parlato in
termini di disegno da eseguire a mano libe-
ra; vediamo ora invece come è possibile
aggiungere delle scritte alle figure create.
Sotto questo punto di vista Melbourne
Draw non offre poi molto; il set di caratteri
a disposizione è quello standard dello
Spectrum e le posizioni di stampa sono
quelle normali. L'unica differenza rispetto
a quello che si 1 otterrebbe con un normale
PRINT è la possibilità di scrivere nelle
quattro direzioni (alto, basso, destra e sini-
stra), con i caratteri orientati nel verso in
cui si scrive.
Interessante invece è l'uso che si può fare
dei caratteri grafici: ognuno dei 760 carat-
teri di 8 x 8 pixel che formano lo schermo
può essere trasferito in un UDG. In questo
modo si può definire una parte del disegno
come una serie di caratteri grafici, che poi
possono essere stampati su un'altra parte
dello schermo. Ciò. in unione con la possi-
bilità di scrollare il disegno, premette di
simulare la funzione di copy, c in pratica,
di spostare pezzi del disegno da una zona
all'altra.
Come UDG editor vero e proprio, inve-
ce, il programma non é, tutto sommato,
eccessivamente efficace; per questo scopo
particolare sono assai più indicate le utility
specifiche, come quella pubblicata in Tut-
toSpectrum di maggio '84.
Conclusioni
Pur essendo ormai abbastanza vecchio.
Melbourne Draw rimane con ogni proba-
bilità il migliore programma per disegnare
disponibile per lo Spectrum.
La sua caratteristica principale risiede
nel modo in cui permette di controllare gli
attributi, ideale per un perfetto controllo
del colore.
Peccato che sia incredibilmente carente
dal punto di vista delle funzioni di base:
riteniamo che un package grafico debba
obbligatoriamente possedere dei comandi
in grado di tracciare automaticamente al-
meno linee e cerchi (ma rettangoli ed archi
certo non guasterebbero).
Le possibilità che offre sembrano co-
munque più che in grado di compensare le
sue lacune, specie considerando che ad esse
risulta abbastanza facile porre rimedio
preparando gli elementi fondamentali del
disegno direttamente da Basic. MC
Elenco dei comandi disponibili
Tasto Funzione
Q cursore in alto a sinistra
W cursore In alto
E cursore in alto a destra
A cursore a sinistra
D cursore a destra
Z cursore in basso a sinistra
X cursore in basso
C cursore in basso a destra
S modifica il pixel sul quale si
trova il cursore in base allo
stato di quest'ultimo
M ingrandisce lo schermo
N riduce lo schermo
B cambia il colore di BORDER
0-7 cambia il colore di INK
SHIFT 0-7 cambia il colore di PAPER
SHIFT B attiva o disattiva la condizio-
ne di BRIGHT
SHIFT V attiva o disattiva la condizio-
ne di FLASH
SHIFT R pulisce lo schermo e/o gli at-
tributi:
P= PAPER
Funzione
B = ENTRAMBI
S= SCHERMO
A = TUTTI
e lo stato RESET
e lo stato INVERT
e lo stato SET
e lo stato SKIP
permette di passare dal mo-
do SCREEN al modo ATTR e
viceversa
attiva lo scroll dello schermo
attiva il modo TEXT
ridefinisce un carattere grafi-
SHIFT F riempie ui
a dello scher-
G attiva o disattiva la griglia 1
SHIFT G attiva o disattiva la griglia 2
SHIFT 9 muove la information window
SHIFT L ruota lo schermo
SHIFT 8 espande o riduce il disegno
CAPS SHIFT permette di tornare al menu
+ principale o di uscire dal
SPACE modo TEXT
MCmicrocomputer n. 38 - febbraio 1985
Nel mondo
dei Personal Computers c’è
6^32© PCIine
Periferiche
Una gamma completa di prodotti per:
• aumentare
la capacità delle memorie di massa
• configurare
reti locali e comunicazioni a distanza
• realizzare
sistemi grafici
• aggiungere
memorie e funzioni I/O
per personal computers
• stampare
a matrice e a margherita
• leggere
codici a barre e OCR
con i vostri personal
computers IBM, Olivetti,
ITT, Italtel, Ericsson,
Sperry, etc.
M 320
TELCOM s.r.l. - 20148 Milano
Via M, Civitali, 75 - Tel. 02/4047648
(3 linee rie. aut.) - Telex 335654 TELCOM I
I prodotti PC Line sono promossi presso
tutti i rivenditori di personal computers da
ARGE - Genova - Tel. 010/41 .38.04
DATATEC - Roma - Tel. 06/35 10.23
D.D.P. - Torino - Tel. 011/65.05.185
LABEL - Firenze - Tel. 055/35.04.71
SITAL - Padova - Tel. 049/63.75.61
Hondic
Cole Result
Uno spreadsheet per il CBM 64
di Leo Sorge
Ad Mirti ilei piccolo silurino, che consta ili
sole 41) colonne I contro uno standard di SO / .
la tastiera professionale del Commodore 64
e i 64K di Rum interna ne fanno uno stru-
mento di lavoro economico e pratico, e ades-
so ( sembra I anche un po' più affidabile, dati
gli sforzi compiuti dalla Commodore nello
spinoso problema dell'assistenza tecnica: è
quindi una macchina adatta anche per chi
vuole entrare nell'informatica del lavoro,
che prevede l’uso di svariati programmi di
uso comune che sostituiscono le macchine da
scrivere, gli schedari e le altre parti deUuffi-
Seguendo questa lìnea di pensiero, un
unno fa t MC n. 28 ) abbiamo presentato
E Easy Script, un comodo wordprocessor per
il trattamento di testi e tabelle: l'argomento
è stato poi approfondilo in un secondo, più
recente articolo f MC n. 33/ che spiegava
come sfruttare la porta parallela compatibi-
le Centronics messa a disposizione via soft-
ware dal programma stesso.
Adesso vi proponiamo il Cale Result. un
tabellone elettronico, elicgli inglesi chiama-
no spreadsheet I letteralmente "foglio este-
so", sottintendendone Ut matrice eleltroni-
Lo spreadsheet serve un po' a tutto, dal
conto della spesa alla pianificazione di
un 'attività o di un 'azienda.
Questo programma è stato messo a punto
dalla casa svedese Handic, che l tra la ver-
sione Advanced e quella Easy, cui dedichia-
mo un riquadro) ne ha venduti oltre
250.000. un successo di risonanza mondiale.
Nonostante sia completato da numerose
schermate e da parecchi esempi, questo arti-
colo non va inteso come sostituto del manua-
le. bensì come pura e semplice — seppure
approfondila — presentazione de! prodotto:
lo scopo è offrire al lettore un immediata
immagine delle caratteristiche salienti del
prodotto, in modo da favorirne una corretta
valuu i rapporto alle proprie esigen-
MCmicrocomputer n. 38 - lebbraio 1985
Il sct-up
La confezione contiene un esauriente
manuale in lingua inglese, una cartuccia e
un disco master: voi dovete aggiungere so-
lamente un dischetto vuoto ma già format-
tato. La priva volta è sempre più difficile, e
il Cale Restili non sfugge a questa regola:
fissare tutti i parametri è cosa lunga^enoio-
sommi capi le singole operazioni, comun-
que dettagliale sul manuale.
Inizialmente dovete accendere la stam-
pante (se la avete) e l'unità a dischi, la-
sciando spento il computer. A questo pun-
to inserite la cartuccia nello slot posteriore
del 64: vi farà eco il floppy disc. con alcuni
rumori dovuti ad un collegamento hard-
manderà un messaggio con il nome del
programma e accederà al disco, causando i
soliti rumori: non trovando niente scriverà
sullo schermo il messaggio “INSERT
DISK", ovvero inserisci il disco master che
viene dato nella confezione della versione
avanzata del programma (ricordiamo che
c'c anche una versione semplificata, cui
accenniamo in un riquadro a parte). Do-
vrete allora eseguire l'istruzione in un bre-
ve tempo, pena un ulteriore rallentamento
rà a carica re° le' par fi ma ncTnt L Pf ° VVe '
Le lasi di caricamento che seguono ora
schetto vuoto ma formattato viene confi-
apportuna. tramite suc-
ti dal disco master (ope-
razione questa laboriosissima); poi il com-
puter chiede informazioni sul linguaggio
dell'utente (in modo da caricare sul disco
diretto — diremmo quasi con un menu 0
— sono le seguenti:
F7 per il menu principale
F6 per l’hardcopy
F3 per il Goto
F5 per gli schermi di aiuto (help)
Chi conosce l'inglese non troverà nessuna
difficoltà nel gestire il programma, mentre
gli altri dovranno perdere un po' di tempo
affidandosi agli schermi di help, non sem-
pre chiarissimi, che fortunatamente sono
disponibili in ben otto lingue tra cui l'ita-
liano. Per le prime volte, dunque, premete
F7 e subito dopo F5: \ ’
di lavoro solo gli help necessari), sulla di-
sposizione dello schermo (i vari colori per
sfondo, bordo e scritto), sulla formattazio-
ne di eventuali pagine testo da inviare alla
stampante, e converte tutti questi dati in
che viene memorizzato sul dischetto di la-
A questo punto siete pronti per lavorare
con il Cale Restili.
È evidente che questa operazione viene
realizzata solo la prima volta che sì usa il
programma: per tutte le successive basterà
inserire il disco di lavoro già preparato, c il
computer si regolerà di conseguenza, senza
chiedervi nuovamente tutti i parametri.
La struttura
Cale Result è un programma del tipo
menu-driven. ovvero guidato compieta-
mente da menu: ciò vuol dire che le varie
funzioni sono ottenibili premendo una suc-
cessione di tasti ben precisa, avendo al più
da specificare alcune informazioni aggiun-
tive (nomi dei file: gamma di interesse, etc)
il < return >.
nodo
che. come al solito, le funzioni sono imme-
diate; per lavorare con il disco si preme D;
poi per salvare il file si usa S. per caricarlo
L (da Load). per avere il directory C (da
Catalog), e cosi via. Le funzioni più labo-
riose andranno invece studiate sul manua-
le e approfondite sul computer.
se in un articolo non è possibile compattare
tutte le informazioni, pensiamo comunque
di potervene illustrare le peculiarità mani-
II foglio elettronico è di grandi dimen-
sioni: 64 righe di 255 colonne ciascuna,
numerate per le ordinate ma indicate da
lettere per le ascisse, delle quali lo schermo
mostra un numero decisamente ristretto
(all’accensione è 21 x 4. ma la larghezza di
ogni colonna è variabile tra 4 e 18 caratte-
ri). La possibilità più interessante del pro-
gramma é però la capacità di gestire fino a
MCmicrocomputer n. 38 - febbraio 1985
32 pagine di questo tipo, ovviamente con
un alacre aiuto del disco: ciò permette di
definire il Cale Result come "spreadsheet
tridimensionale", dato che la stessa tabel-
la. comunque estesa, è utilizzabile più volte
e con nomi diversi, proprio come se la
tabella fosse tridimensionale.
Ognuna della caselle può essere usata
per immagazzinare un'etichetta (label) o
nome, oppure una formula che al limite è
direttamente un valore numerico. Per di-
re al computer che vogliamo memorizza-
re un'etichetta, basta andare con il curso-
re sulla casella che ci interessa e poi pre-
mere la barra spaziatrice, seguita dal no-
me che intendiamo usare.
Nel caso quella casella abbia una pre-
cedente definizione, si dovrà andarci con
il cursore, cancellare la vecchia etichetta
(premendo F7 e B) e metterci la nuova
preceduta da Shift 4- Space.
Per inserire un numero o una formula
basta farlo direttamente: se sì desidera
operare sul contenuto di un'altra casella
precedentemente definita, basta usarne
la coordinata come variabile, per cui po-
sta A3 pari a 300, se vogliamo che A4
contenga costantemente un quarto del
contenuto di A3 dovremo metterci
A3/4
com'era d'altronde prevedibile.
Per muoversi sul tabellone si può tran-
quillamente fruire dei tasti cursore: se
serve un grosso spostamento si può inve-
ce usare la combinazione
F7 F3 < casella > < return >
che equivale ad un Goto <casella>. Ad
esempio, volendo trasferire il controllo alla
posizione AA34 si dovrà impostare
F7 F3 AA34 < return >.
In un foglio di tali dimensioni è abba-
stanza facile perdersi. Due delle cose più
utili nella gestione dei dati sullo schermo
sono la possibilità di dividere in due la
pagina grafica, e l'ulteriore capacità di a-
prire finestre (anch'esse suddivisibili in due
sottofinestre ed eventualmente con scroll
sincronizzato).
La prima possibilità si ottiene impostan-
do
F7 E S e poi V o H e < return >
(E = edit: S = split: V = vcrtical; H =
horizontal)
ed è molto utile non appena la tabella si
estende in almeno una delle due direzioni
possibili. Dato che ogni tabella ha delle
intestazioni sulle ascisse e delle altre inte-
stazioni sulle ordinate (ad esempio, in un
bilancio, rispettivamente i mesi e le voci del
bilancio stesso), inoltrandosi nel tabellone
si perdono questi riferimenti: la suddivisio-
ne dello schermo ci permette di tener ferme
le prime due righe o colonne con i riferi-
menti, mantenendo tutte le capacità dello
schermo vero e proprio nella restante zona
di lavoro. Questa situazione è mostrata
nelle fotografie accluse all'articolo.
Grande è anche l’utilità delle finestre,
che lavorano come un secondo schermo, e
sono quindi suddivisibili in due partì (an-
Calc Result Easy
Di questo programma esiste anche la
versione semplificata (Easy, ovvero faci-
le. in inglese), sempre su cartuccia, al
prezzo di 125.000 lire più IVA. La diffe-
renza di prezzo non è poi cosi grande, per
cui sorge spontanea la domanda: convie-
ne prendere la Easy? La risposta non è
immediata. Le principali diltercnze tra i
due programmi sono le 32 pagine e gli
schermi di aiuto, entrambi presenti nella
sola versione avanzata. Nel primo caso la
perdita non è eccessiva, dato che la gran-
de maggioranza degli utenti avrebbe co-
munque lavorato prevalentemente con
una sola pagina, mentre crediamo anco-
ra più utile la seconda: è molto scomodo
fare a meno di un comodo riferimento
alle opzioni previste dai vari menu. Si
tratta quindi di fare una scelta pratica,
che a noi sembra praticamente obbligata
a favore della versione estesa.
Il principale pregio della versione sem-
plificata è però quello di consentire la
gestione delle informazioni su nastro,
senza quindi dover ricorrere all'unità a
Schermala Mia vermine lucile. Come vaine, dal menu
principale che appare nella seconda riga manca del
dischi (che attualmente costa più dell'ac-
coppiata computer + registratore): con
un hardware ridotto al minimo si può
quindi fruire di una pagina di dimensioni
254 x 63, ad un prezzo ridotto rispetto
alla versione per disco. Easy, quindi, per
chi non ha il floppy.
Andiamo comunque a vedere le altre
differenze principali. Le finestre e la sud-
divisione dello schermo, che erano state
concepite principalmente per confronta-
re tra loro parti di un esteso tabellone
(faticosamente riprodotto in un display a
40 colonne), vengono qui a mancare: e
con loro le varie funzioni che muovono il
cursore tra le varie suddivisioni dello
schermo, ovvero che sincronizzano lo
scroll delle varie parti. Anche la gestione
dei comandi e dei menu c alterata: per
salvare i dati, ad esempio, bisogna usare
la procedura
F7T
ove T sta per Transport (trasferisci). A
questo punto vi viene chiesto il supporto:
Disk, Tape
cui voi dovete rispondere con D o T e poi
indicare l'operazione e il nome del file.
Il manuale é ovviamente lo stesso della
versione superiore, in un’edizione più e-
conomica e con le opportune correzioni;
ne conserva quindi la struttura in tre par-
ti, delle quali è assai utile quella di trai-
ning.
70
MCmicrocomputer n. 38 - febbraio 1985
che stavolta o orizzontali o verticali), con
in più la possibilità di avere lo scroll sincro-
nizzato (premendo F4) delle due parti della
finestra: questa possibilità si abilita con
F7 E W < return >
specificando poi quale zona si voglia nella
finestra, e si mostra fondamentale per po-
ter effettuare dei confronti.
Un'ultima cosa da sottolineare è la ge-
stione di istogrammi: specificando quale
riga o colonna (o quale sua parte) si vuol
vedere in tale forma, basta richiamare il
menu di Edit e la sua funzione Grafica con
i comandi
F7 E G < return >
e specificare la gamma di interesse. L'ulte-
riore funzione di hardcopy ottenibile pre-
mendo F6 permette inoltre di avere una
copia su carta delPistogramma. accrescen-
done l'utilità. Aggiungiamo alcune note
per mostrare un'ulteriore possibilità offer-
ta da questo spreadsheet: la programmabi-
lità. In svariati casi, infatti, si ha a che fare
con tabelle di percentuali variabili a secon-
da della quantità su cui si opera (tipico
esempio: le tasse per fasce di reddito), per
cui si rende necessario discriminare le varie
operazioni. Per questa necessità il Cale Re-
sult mette a disposizione la funzione
IF... THEN... ELSE.
che lavora come negli usuali linguaggi di
programmazione, e può sfruttare anche gli
operatori logici
AND, OR e NOT
Vediamo un semplice esempio teorico.
Mettiamo il reddito del mese nella casella
Al. e quello totale dell'anno in A2. Se A2
(che ovviamente già comprende A I ) è su-
periore ad un limite che nell'esempio po-
niamo pari ad I milione, allora le tasse sul
reddito del mese salgono al 27%, altrimenti
rimangono (poniamo) al 24%. Volendo le
tasse del mese nella casella Bl dovremo
andare con il cursore in questa posizione e
scrivere la seguente espressione:
(IF A2> 1000000 THEN 24 ELSE 27)
il che automaticamente seleziona la per-
centuale desiderata.
Un'altra funzione particolarmente utile
è quella di somma degli elementi di una
colonna: si chiama — guarda un po' ! —
SUM. ed ha la seguente sintassi:
SUM (< primo elemento >: < ultimo ele-
mento > )
e funziona non solo sulla singola colonna
(es.: SUM (B2:B 1 8)) ma anche su più d'u-
na (es.: SUM (B2:CI3)).
Esistono molte altre funzioni: citiamo
MIN (per trovare il minimo contenuto del-
le caselle indicate tra parentesi) e il suo
inverso MAX. un contatore COUNT, ed
infine RND ed ABS che funzionano come
Conclusioni
La nostra impressione dopo l'uso è di
un'elevata versatilità tramite ia suddivisio-
ne dello schermo e le finestre con scroll
simultaneo, che compensano in gran parte
l'annoso problema delle sole 40 colonne
disponibili sul 64. L’unico problema da noi
riscontrato riguarda la parziale cancella-
zione del display in occasione di accessi al
disco quando stiamo operando su finestre,
problema del tutto collaterale e di nessun
effetto pratico (premendo F7 si torna alla
situazione iniziale).
Il programma è particolarmente adatto
per contabilità e pianificazioni individuali,
nel qual caso l'utente non ha bisogno di
sfruttarne le caratteristiche al massimo:
ovviamente più l'uso è impegnativo, mag-
giore è il tempo di apprendimento necessa-
rio. Il prezzo è sicuramente appetibile, spe-
cie nella versione semplificata e comunque
di certo motivato dalle caratteristiche. In
definitiva si tratta di una proposta che non
mancherà di interessare una vasta utenza,
e non solo nel settore professionale, mt
MCmicrocomputer n. 38 - febbraio 1985
71
PER IL TUO COMPUTER -
GIOCHI E UTILITY SU CASSETTA!
w w
Ogni anno circa due milioni di persone
visitano la Fiera Campionaria di Milano
Dal 1 985, ad attenderle, ci sarà
COMPUTER SHOW
il nuovo Salone interamente dedicato
aH’informatica per i giovani, la scuola,
la famiglia moderna. Sicuramente sarà
il più grande appuntamento dell’anno.
Perché non
Segreterìa:
E.P.I. - ENTE PROMOZIONE INFORMATICA
Via Marochetti, 27 - 20139 Milano
Telefoni (021 56.93.973 - 53.98.267
esserci?
la mostra per:
l'hobby
la didattica
i videogiochi
AMSTRAD CPC 464
e unici
iyte di copertura
^ per ogni faccia disco
con possibilità di unire due
Drive per ogni controller.
Sistema operativo per floppy
in CP/M 2.2 e AMSDOS
(Digital Research ine.)
Peso kg. 1,6. Dischi 3 pollici.
Personal Computer completo.
Monitor a colori o a fosfori verdi
Basic esteso velocissimo.
Grafica in alta soluzione (640x200).
80 colonne di scrittura.
A Stampa ad impatto
w monodirezionale.
Matrice caratteri 5x7.
Velocità 50 caratteri
ra al secondo.
con velocità di lettura seleziona
Tastiera professionale (74 tasti).
27 colori utilizzabilL
urta Nuova, 14 - 24100 i
Con Monitor monocrom L 739.000 + iva
Con Monitor a colori L 1.030 000 + iva
ESCLUSIVISTA PER L'ITALIA
• Tel. 035/221031 (5 linee r.a.)
Un tentativo
di classificazione
Nei numeri scorsi abbiamo iniziato una
serie di articoli intitolati "ricominciamo da
capo", tendenti a recuperare alla Compu-
ter Grafica anche i nuovi arrivati della
Computermania.
Tentiamo ora una Classificazione della
Computer Grafica, ovvero identificando e
raggruppando logicamente le applicazioni,
tentiamo di costruire una "griglia" di rife-
rimento attraverso la quale "far passare"
qualsiasi problematica per collocarla cor-
rettamente nella sua casella, codificandola.
Abbiamo verificato la validità della clas-
sificazione cosi costruita applicandola a
tutti gli articoli di Computer Grafica scritti
su MCmicrocomputer a partire dal primo
numero. Il risultato di questo lavoro si è
anche concretizzato in un dischetto già di-
sponibile per l'Apple II (ci sarà in seguito
anche una versione per IBM PC) in cui
sono raccolti, organizzati in una unica
struttura, e allineati come specifiche di
programmazione, 27 programmi scelti tra
quelli pubblicati su MC.
Scopo di tale dischetto (richiedibile con
le modalità riportate a pag. 76) è quello di
fornire una panoramica completa delle pos-
sibilità grafiche di un Personal Computer, e
soprattutto di fornire a tutti uno strumento
di studio per implementazioni e applicazioni
personali.
Ogni programma, infatti, rispetta una
stessa struttura logica specificata nel pro-
gramma iniziale e contiene nel suo interno
tutte le spiegazioni per poterlo manipolare
a proprio piacimento. Tutti i programmi
sono stati descritti nei vari numeri arretrati
di MC, ai quali rimandiamo chi avesse
bisogno di qualunque chiarimento.
Computer grafica
come supporto
dell'informatica tradizionale
oppure
come materia a sé stante
La Computer Grafica abbraccia ormai
una gamma di applicazioni talmente vasta
da rendere difficile una trattazione organi-
ca e del tutto scissa dall'applicazione stes-
sa. Si pensi come sono differenti le applica-
zioni in campo medico da quelle in campo
cinematografico/televisivo, oppure quelle
nel campo giochi da quelle nel campo della
progettazione tecnica.
Una prima classificazione può essere
quella di separare le applicazioni in cui la
C.G. è di supporto ad altre funzioni infor-
matiche da quelle in cui vive, per cosi dire,
di vita propria. Un grafico ricavato dalla
elaborazione dei dati rilevati in una indagi-
ne statistica permette una lettura più rapi-
da del fenomeno rilevato, ma in nessun
caso Io influenza.
Al contrario un video gioco tipo simula-
tore di volo ha senso solo in quanto grafi-
co, oppure un programma di Progettazio-
ne tecnica Stradale ha senso solo in quanto
produce come risultato finale il progetto su
carta della strada.
Né si può dire che la Computer Grafica
come accessorio della informatica tradi-
zionale rappresenti una attività di serie B
rispetto a questa.
Si può considerare la Computer Grafica
come "quarta dimensione" dell'informati-
ca. Nel senso che ad ogni dato trattato si
può attribuire oltre ai significati e ai valori
tradizionali, anche un valore grafico di pa-
ri dignità dei precedenti. Si arriverà proba-
bilmente alla "quinta dimensione" quando
si attribuirà il valore "suono" e alla "sesta"
il valore "odore".
Queste potrebbero sembrare fantasie,
ma lo sembreranno di meno se si pensa alla
filosofia che sta alla base dei nuovi prodot-
ti software integrati che girano sui PC 16
bit.
Negli archivi dei nuovi prodotti (parlo
del SIMPHONY, del FRAMEWORK,
della famiglia DBase, e anche della fami-
glia ASSISTANT dell’IBM) il dato assu-
me varie forme. Lo si può trattare come
dato numerico, come dato da sottoporre
ad analisi statistiche, come dato da "muo-
vere" all'interno dell'archivio o anche al di
fuori dell'archivio (funzione COMM del
MCmicrocomputer n. 38 - febbraio 1985
75
SIMPHONY) o. quello di cui stiamo par-
lando. come dato da visualizzare grafica-
mente.
Invece la Computer Grafica a sé stante
quanto è differente dalla informatica tradi-
zionale?
Quante e quali conoscenze classiche so-
no “riutilizzabili" da chi passa a trattare
problematiche di Computer Grafica?
Anche in questo caso non si può dare
una risposta precisa in quanto dipende dal-
l'applicazione.
Se è una applicazione in cui prevale uno
specifico mezzo tecnico (si pensi alla realiz-
zazione di una animazione per uno spot
per una pubblicità televisiva eseguita me-
diante sistema videografico digitalizzatore
interfacciatocon macchina da ripresa cine-
matografica) è più facile che sia il Grafico
Pubblicitario a imparare la nuova tecnica
piuttosto che sia l'informatico a diventare
un disegnatore.
Al contrario una applicazione tipo quel-
la citata di Progettazione Stradale presenta
aspetti informatici più tradizionali, come
gestione archivi, esecuzione di calcoli. I-
noltre la parte grafica della procedura ri-
guarda solo la forma di visualizzazione del
risultato finale.
Ad esempio se stiamo realizzando un
programma grafico con uscita su plotter il
nostro lavoro non viene che minimamente
condizionato in quanto il plotter é visto dal
computer e quindi dal programma come
una qualsiasi stampante, al punto che po-
tremmo finire il lavoro c anche testarlo
senza neanche collcgare un plotter.
Leggeremo i comandi stampandoli nella
sequenza di uscita dalla stampante/plouer
e ne controlleremo la validità formale, an-
che se non vediamo il risultato reale.
Ovvero invece di vedere un cerchio ve-
dremo una sequenza di caratteri del tipo
“0200, 2000, 450....". Non è che sia una
modalità comoda, ma ad esempio se ab-
biamo una sola interfaccia per le due peri-
feriche conviene fare cosi anziché collcgare
e scollegare in continuazione.
La classificazione
Nei vari numeri di MC abbiamo sempre
presentalo programmi di piccole dimen-
sioni in quanto la finalità che ci si è posta é
stata quella di suggerire problematiche e
soluzioni anziché programmi da copiare
passivamente.
Con questo limite non abbiamo quasi
mai affrontato programmi con gestione di
archivi, programmi di videogiochi, anzi
abbiamo spesso pubblicato programmi
che producono un solo disegno.
Un'altra tematica che non abbiamo
spesso affrontato è quella del colore, che
pur essendo un elemento importante per la
Computer Grafica non ne altera le proble-
matiche e le soluzioni.
Un'altra caratteristica è stata quella di
lasciare aperto il programma sia all’inseri-
mcnto di altri dati scelti dal lettore, sia
sotto forma di formule che di dati alfanu-
II minifloppy con i 27 programmi grafici per Apple é disponibile presso la redazione al
prezzo di lire 30.000. Per l’ordinazione vedere pag. 1 53.
76
MCmicrocomputer n 38 - febbraio 1985
ELENCO DEI PROGRAMMI E LORO CODIFICAZIONE
P r . Nome Cod .
Des
, /Problem. Trattato
1 PIANTCS
2 TRATSCL
3 CIRCUIT
4 FILISCL
5 TRAIETT
6 BISETTR
7 TRETRID
B DIECSPI
9 DUEPAGN
10 FAMCURV
1 1 DODECDR
12 TRIGONO
13 DISRETT
14 CERCHIO
15 ANIMAZI
16 NOVEMOD
17 CICLUNO
IB PENTAGN
19 MERLETT
20 INTERAT
21 CASETTA
22 ELLISSD
23 PARABLD
24 BERSAGL
25 FUNZION
26 REGRESS
27 BIDIMOT
Figura 2
BMD5 15
BMD5 19
BMD4 6
BMD4 16
BPD4 5
BMD4 14
TMD4 7
BMD2 B
TPD5 1 1
BMM3 5
TMD4 9
BMM3 14
BMM2 6
BII3 4
BMD2 3
BMD3 7
BPM1 3
TMM3 5
BMI1 5
BIM2 7
BMI3 15
BMI 1 6
20
5
30
35
24
26
23
25
19
23
15
29
tratteggio di aree chiuse
76 Disegno di un Circuito Automob.
codifica di elementi geometrici
B3 Pianta Geografica
51 Traiettoria di un oggetto in moto
caratterist. geometriche del moto
70 Dati Geometrici degli Angoli
trattamento dati trigonometrici
53 Tre Viste tridimensionali
tre modalità di calcolo
99 Dieci spirali differenti
analisi tipologia della spirale
69 Viste prospettiche di un oggetto
calcolo tridimensionale
47 Famiglia di curve sul piano
75 Disegno di un Dodecadro
67 Disegni geometrici Piani
trattazione tema retta
51 Disegni geometrici Piani
trattazione tema cerchio
51 Oggetto in movimento nello spazio
successione di viste prospettiche
70 Nove passaggi modalità Appi eli
utilizzazione TEXT, HGR, HGR2
54 Disegno della curva cicloide
56 Vari disegni di un Pentagono
trattazione tema raccordi curvi
75 Ghirigori con facili formule
tema della prospettiva
tema della prospettiva
49 Teoria geometrica del Bersaglio
problema di fisica applicata
52 Disegno di una funzione piana
trattazione delle probi, connesse
50 Varie curve di Regressione
statistica applicata
Legenda della tabella
pr progressivo del programma nel dischetto
nome nome del programma (abbreviato a 7 caratteri)
codifica tipologia ovvero:
primo carattere - Bgrafica bidimensionale
- T grafica tridimensionale
secondo carattere
- M un solo disegno
I un disegno variabile via input
Ppiù disegni in successione
terzo carattere
quarto carattere
lunghezza
riferimento
-M disegno di elementi matematici
- Delementi immessi via DATA
I elementi immessi via INPUT
- 1 classificazione della
" difficoltà globale
- 5 del programma
del programma in settori (256 byte)
numero di MC e pagina su cui il programma è stato pubblicato. I
trattini indicano che il programma non è stato mai pubblicato su
MC.
descrizione e problematica trattata commentano il tipo di programma.
La classificazione che proponiamo é te-
stata su questo "patrimonio" di program-
mi immagazzinati sul dischetto già citato
(sono più di 50), che vengono parzialmente
rielencati e quindi codificati. Nell'elenco
pubblicato in queste pagine sono riportati
anche la lunghezza del programma e il rife-
rimento MC (numero della rivista e pagina
su cui è stato pubblicato).
Quindi i lettori più fedeli che conservano
i numeri della rivista possono utilizzare
l'elenco come indice ragionato dei pro-
grammi pubblicati. I lettori meno fedeli (o
meglio quelli nuovi) possono richiedere i
numeri arretrati di loro interesse.
Nel dischetto vi è inoltre un programma
iniziale che esegue un breve Slide Show e
che fornisce la descrizione del contenuto
del disco.
L'ultimo carattere della codifica rappre-
senta un valore di difficoltà riferito all'in-
sieme del programma e quindi i principian-
ti è bene che comincino a lavorare con
quelli di difficoltà I.
Bidimensionale e Tridimensionale
Qualsiasi forma grafica su qualsiasi sup-
porto si presenta sempre bidimensionale,
questo qualunque sia la dimensione del-
l'oggetto.
Una retta che ha una sola dimensione
può essere visualizzata solo su un foglio,
anche se nella realtà questa retta vive nello
Cosi la traiettoria di un satellite, che è
una linea puramente ideale che unisce tutti
i punti occupati dal satellite durante il suo
movimento e che per essere definita neces-
sita di formule matematiche, per essere vi-
sualizzala necessita di modalità e conven-
zioni di calcolo.
Definiremo un Programma di Grafica
bidimensionale quello in cui l'oggetto vi-
sualizzato è bidimensionale o riconducibi-
le a due dimensioni. La piantina di una
casa non rappresenta certo un oggetto bi-
dimensionale ma. per i fini che la piantina
ha. è sufficiente un aspetto bidimensionale.
Viceversa se l'oggetto da visualizzare ha
una sua consistenza tridimensionale, qual-
siasi sia la convenzione di visualizzazione
si tratta di Grafica Tridimensionale.
Qualsiasi forma di visualizzazione si
scelga l'immagine in output darà sempre
una idea dell'oggetto reale, in qualche caso
l'idea sarà precisa, in altri casi c inevitabile
avere delle approssimazioni.
Una piantina della Sicilia non tiene con-
to della curvatura terrestre. Una visualiz-
zazione degli spigoli di un solido spaziale
non definisce completamente la posizione
delle facce rispetto all'osservatore.
Queste imprecisioni sono insite nel pro-
blema, non sono state mai risolte in quanto
non sono risolubili. Hanno sempre affasci-
nato i pittori e i grafici che hanno spesso
utilizzato, esasperandola, questa ambigui-
tà.
Uno, due, più disegni
Per quanto riguarda il prodotto in "usci-
MCmicrocomputer n. 38 - febbraio 1985
77
ta" dal programma grafico, e che definire-
mo disegno, questo può assumere varie
forme.
Può essere un disegno unico, fisso, pro-
dotto alla fine dell'elaborazione. È il caso
ad esempio dei disegni statistici, che elabo-
rano dati e alla fine li traducono in forma
grafica, o il disegno di una funzione mate-
matica anche molto complessa, che viene
tracciata in un opportuno riferimento.
Può essere un disegno unico, ma variabi-
le durante lo svolgimento del programma.
Se il programma, e quindi il disegno, sono
"manovrati" dall'operatore si parla di
Grafica interattiva.
Può essere un insieme di disegni da vede-
re secondo una certa sequenza logica. Se
tale sequenza viene realizzata su video e
questo serve per dare una sensazione di
continuità all'immagine, si parla di Ani-
mazione.
Modalità di inserimento dei dati
Un'altra caratteristica che differenzia i
programmi di Computer Grafica tra di lo-
ro. indipendentemente dalle altre condi-
zioni, è rappresentata dalla tipologia dei
dati da visualizzare.
In questo caso vi sono due grossi rag-
gruppamenti:
- dati riconducibili ad elementi mate-
matico-geometrici e quindi esprimibili tra-
mite una "formula".
In questo caso se si lavora in Basic si può
ricorrere alla istruzione DEF FN e quindi
il “soggetto" da visualizzare risiede addi-
rittura in una unica riga di programma,
che può essere modificata facilmente.
- dati non esprimibili tramite una for-
mula.
In questo caso ci si trova di fronte ad un
problema tipico dell'informatica "tradi-
zionale" quello dell'organizzazione e della
codificazione dei dati. II che significa dare
il maggior numero di informazioni con il
minimo dei dati.
Se la quantità dei dati è elevata e se i dati
non vanno elaborati contemporaneamen-
te. si entra nel tema organizzazione degli
archivi, che è del tutto identico a qualsiasi
altro problema di organizzazione archivi
(codifica, chiavi di accesso, ordinamento,
oltre che gestione dell'archivio).
Tutte queste considerazioni indicano
come gran parte delle tematiche di Com-
puter Grafica, riferite cioè al programma
che sta dietro una certa uscita grafica, sono
tematiche classiche dell'informatica, e nel
caso dei piccoli computer, della microin-
formatica. Richiedono in taluni casi poche
cognizioni supplementari, in altri casi, per
problematiche più compiesse, la conoscen-
za o lo studio di materie propedeutiche al
problema, non alla informatica.
Ad esempio il problema della prospetti-
va, da utilizzare in computer grafica tridi-
mensionale. richiede la conoscenza degli
elementi fondamentali di trigonometria, a
meno che non si accetti di copiare passiva-
mente il programma senza capirne lo svol-
gimento.
Utilizzazione dei programmi
scritti per macchine
differenti dalla propria
Cosi come non esiste un reale standard
nel linguaggio Basic, a maggior ragione
non esiste uno standard nei set dei coman-
di grafici dei vari Basic, anche perché l'i-
struzione grafica è quella che più dipende
dall'Hardware della macchina.
In generale l'esistenza di un set di istru-
zioni grafiche più potenti non permette di
realizzare programmi non realizzabili con
altre macchine, dotate di set più ridotti, ma
permette sensibili facilitazioni nella pro-
grammazione.
Mettiamo ad esempio a confronto i due
Basic che più rappresentano uno standard:
quello dell'Apple II e quello dell'IBM e
compatibili (Olivetti M24, ecc.)
Le differenze a favore dell'IBM sono:
— lo scaling automatico, permesso dal-
la istruzione WIN DOW. Con l'Apple oc-
core fare una routine di scaling. che in
genere obbliga a precalcolare tutti i dati da
visualizzare per la ricerca dei punti estremi
(massimi e minimi della X e della Y):
— il riempimento di un'area, permesso
dalla istruzione FILL. Esistono per l'Ap-
ple dei tool grafici che contengono istru-
zioni per il riempimento;
— le scritte nella uscita Grafica. L'IBM
accetta la PR1NT anche sulla pagina grafi-
ca, mentre con l'Apple occorre caricare un
78
MCmicrocomputer n. 38 - febbraio 1985
set di caratteri grafici che "escono" sul vi-
deo grafico:
— istruzioni specifiche tipo CIRCLE,
LINE, che permettono il disegno diretto di
circonferenze, archi e rettangoli. Invece
con l'Apple occorre fare delle apposite
routinette.
— l'esistenza di istruzioni per la memo-
rizzazione di aree di pagina grafica e per il
loro trasferimento in altre zone della pagi-
na grafica. GET e PUT grafico.
Quindi, un programma che faccia uso di
tutte queste funzioni risulta essere molto
più complicato in Applesoft. Inoltre in Ap-
plesoft occorrerà caricare set di caratteri.
routine in linguaggio macchina, ecc.. con-
sumando "fette" di memoria altrimenti de-
dicate ai dati.
E evidente invece che il cuore del pro-
gramma, ovvero la parte algoritmica, è del
tutto indipendente sia dagli strumenti soft-
ware che si stanno usando, sia dal fatto che
si sta usando un computer.
Chi affronta un problema di grafica,
quindi, e ci riferiamo ai neofiti, deve sepa-
rare logicamente il “cosa disegnare" dal
"come disegnarlo". E se trova sulle riviste
programmi che lo interessano, scritti però
per altre macchine, ricavi il "cosa” per poi
utilizzare i propri strumenti.
27 programmi grafici
per Apple II
Il dischetto nel quale abbiamo raccolto
programmi grafici per Apple II pubblicati
sulla rivista contiene, oltre al programma
iniziale, che esegue uno Slide Show, i 27
elencati nella figura 1, assieme al codice
tipologico descritto in precedenza e inseri-
to nella tabella di figura 2 e al riferimento,
costituito da numero e pagina di MCmi-
crocomputer su cui il programma è appar-
so. Il dischetto è "aperto" in quanto con-
tiene tutte le informazioni utili per modifi-
care il programma, o cambiando i dati da
visualizzare, oppure inserendo nuove rou-
tine con nuove funzioni.
Il codice di difficoltà serve solo per sug-
gerire un ordine logico utile per il princi-
piante che voglia cimentarsi nella grafica.
Ripetiamo che, sebbene non strettamen-
te indispensabile almeno per i più smalizia-
ti. è comunque utile avere a disposizione gli
arretrati con le descrizioni dei vari pro-
grammi. Dei 27 programmi pubblichiamo
una serie di output su video, per dare una
sia pur labile idea delle problematiche trat-
tate, labile specialmente per i programmi
interattivi o che producano una serie di
output successivi.
E dei 27 programmi ne pubblichiamo
qui solo uno, il più facile, che è l'ultimo che
si chiama BIDIMOT ed c listato in figura
3. Il programma BIDIMOT secondo la sua
codifica è bidimensionale, produce un solo
disegno e lo produce tramite comandi che
gli vengono dati via tastiera.
Data una figura di partenza, nel nostro
caso un triangolo le cui posizioni iniziali e
successive sono individuate dalle coppie di
valori (XI, Yl. X2, Y2. X3, Y3), tramite
comandi via input la si muove e modifica
sul video.
Il comando +/-A provoca una rotazio-
ne di pigreco/20 in senso orario o antiora-
II comando +/-X o +/-Y provoca una
traslazione nelle 4 direzioni principali.
Il comando +/-S provoca una variazio-
ne di scala.
Dopo la inizializzazione delle variabili
(righe 200-290) c'è l'istruzione per l'input e
per il riconoscimento del codice (righe 300-
410). Se il codice è corretto vengono calco-
lati i tre vertici nelle nuove posizioni (500-
540) e viene controllato se rientrano nei
margini della pagina video (600-720) e se
rientrano vengono visualizzati (800-810). IÉC
MCmicrocomputer n. 38 - febbraio 1985
79
La Simulazione
Dimensionamento
di un parcheggio
Dopo aver visto la scorsa volta (numero
36). le possibilità generali della simulazio-
ne. ci occupiamo, adesso, di una applica-
zione tra le più classiche: l'analisi di un
sistema complesso in fase progettuale.
Senza farsi spaventare dai paroioni, signi-
fica che proveremo a vedere come si possa
controllare l'evolversi di una situazione
molto complessa, e con tanti parametri su
cui intervenire, utilizzando un qualsiasi
personal computer e un semplice program-
mino in Basic.
La situazione che andremo ad analizza-
re è quella di un parcheggio con un ingres-
so e due uscite, naturalmente a pagamento,
e con una disponibilità di posti, in fase
progettuale, illimitata.
Quello che ci interessa sapere è innanzi-
tutto l'affluenza prevista e quindi il nume-
ro di posti da predisporre, poi sarà interes-
sante vedere anche il formarsi delle code in
ingresso e in uscita per decidere eventual-
mente il numero di addetti da assegnare a
ciascun casello.
Se infatti immaginiamo che la rampa di
accesso permetta una fila massima di sei
macchine, oltre le quali si invade la corsia
di marcia della strada su cui si apre, e
durante la simulazione questo numero di
veicoli in attesa supera troppo spesso il
valore di guardia, possiamo prevedere di
mettere al casello di ingresso due addetti
anziché uno in modo da dimezzare il tem-
po necessario alle operazioni, ad esempio
prendere il tagliando di arrivo, oppure si
potrà sostituire l'addetto con una macchi-
na automatica come è stato fatto sulle au-
tostrade.
Dovrebbe essere evidente che riducendo
il tempo del servizio, a parità di arrivi, si
riduce conseguentemente anche la fila di
attesa.
La stessa cosa si può dire delle due usci-
te. che possiamo chiamare uscita Nord e
uscita Sud; per queste inoltre si pone un
altro problema: il modo con cui gli utenti
scelgono Luna o l'altra delle uscite. Se in-
fatti le due uscite danno sulla stessa strada
non è necessario vederle, in fase di simula-
zione. come distinte dato che. potendo sce-
gliere una o l'altra a piacere, é come se
esistesse una sola uscita con un tempo di
servizio dimezzato; ma se le due uscite dan-
no su strade diverse gli utenti sceglieranno
l'uscita in base alla loro esigenza, e dovre-
mo quindi studiare i flussi dei probabili
clienti (ricordiamo che siamo ancora in
di Valter Di Dio
fase di progetto) per gestire la scelta dell'u-
scita: più o meno è come se ciascun utente
prima di uscire lanciasse un dado e decidesse
poi in base al risultato. Questo comporta
che le code ai due caselli di uscita sono
differenti e si potrebbe verificare anche il
caso in cui. durante la giornata, si modifi-
chi la probabilità di scelta dell'uscita. In
questo easo (probabilità variabile) si può
provare a mettere tre addetti ai caselli di
uscita di cui due fissi e uno che si sposta, a
seconda dell’ora, da un casello all'altro: in
temini matematici il tempo medio di sosta
ai caselli di uscita varia con il trascorrere
del tempo per adeguarsi ai mutati flussi di
vetture.
Anche il tempo che intercorre tra un
arrivo e il successivo sono tempo-dipen-
denti. se è infatti molto probabile che alle
otto del mattino si abbia un arrivo ogni
due minuti, è altrettanto probabile che dal-
le 1 1 alle 12 arrivino poche macchine. Al-
tra variabile che si presume tempo-dipen-
dente è la durata della sosta: chi arriva tra
le sette e le nove probabilmente rimarrà
fino alle 14 o più. mentre chi arriva alle 1 1 è
facile che non si fermi più di un'ora o due.
Tutti questi dati si devono in qualche mo-
do avere prima di iniziare la simulazione. Il
modo migliore di ottenere i dati in casi del
genere è di munirsi di un cronometro e
andare a rilevare i tempi in un parcheggio
già esistente, quindi si interpoleranno i dati
rilevati con quelli presunti (non ha senso
prendere i dati di un parcheggio in perife-
ria e utilizzarli per progettarne uno al cen-
tro della città) e si utilizzeranno i risultati
per la simulazione. È chiaro che tanto più
precise si riveleranno le rilevazioni, tanto
più verosimili saranno i risultati della si-
mulazione. È comunque sempre possibile
effettuare più simulazioni, con valori dei
parametri differenti, nel caso in cui non si
sia certi di alcuni dati. Può anche succedere
che il risultato della simulazione non cam-
bi sensibilmente al variare dei dati (ad e-
sempio potrebbe non far differenza se arri-
va un'auto ogni tre minuti anziché ogni
due) ma più spesso si scoprirà che anche
piccole differenze in certe attività possono
trasformare un sistema apparentemente
tranquillo nel più grosso ingorgo della sto-
Quando un'attività risente particolar-
mente delle variazioni dei dati, quella atti-
vità si dice "critica" ed è ovviamente sulle
attività critiche che si deve incentrare l'at-
tenzione di chi progetta, perché il più pic-
colo errore può mettere scompiglio in tutto
il sistema.
È interessante notare che molto spesso
l'attività critica non é quella più evidente,
e, addirittura, attività apparentemente
"pacifiche" possono portare facilmente al-
la paralisi del sistema in caso di evento
eccezionale. Capita anche spesso che due
attività singolarmente non critiche diventi-
no improvvisamente “micidiali" nel caso
che si sovraccarichino tutte e due contem-
poraneamente: un esempio di ciò si può
vedere tutti i giorni con i problemi del traf-
fico dove piccoli incidenti e rallentamenti,
magari molto lontani tra loro, concorrono
in pochi minuti a bloccare completamente
la circolazione.
Il sistema
Come abbiamo già accennalo, si tratta
di simulare un parcheggio con una entrata,
un certo numero di posti e due uscite su
strade differenti.
Per quanto riguarda i dati e i parametri
di lavoro, supponiamo che gli arrivi, o più
esattamente la media dei tempi che inter-
corrono tra un arrivo e il successivo, siano
variabili di ora in ora. anche il tempo me-
dio di sosta e la relativa varianza cambiano
ogni ora, mentre la probabilità di scelta
dell'uscita resta costante nel corso della
giornata (possiamo supporre che un'uscita
porti su una grossa arteria mentre l'altra
dia su una strada meno trafficata).
Lo schema del parcheggio é quello di
figura I. le righe rappresentano i flussi
mentre le frecce più grosse sono le file d'at-
tesa. Come si vede i posti macchina sono in
parallelo, cioè l’utente può recarsi imme-
diatamente al primo posto libero: spesso
però non è cosi e prima di trovare un posto
libero può essere necessario scorrere tutto
il parcheggio. Nel programma, una varia-
bile tiene conto di quanti posti occupati si
sono incontrati prima di trovarne uno libe-
ro. ma nella tabella stampata questo valore
(che potremmo chiamare felicità del clien-
te) non viene visualizzato, vedremo co-
munque al momento come si può accedere
a questa informazione.
Per quanto riguarda le file di attesa, que-
ste sono dimensionate per un massimo di
15 posti (aumentabile a piacere) oltre il
quale il computer va in blocco mentre la
segnalazione di allarme (corrispondente
alla massima fila ammissibile realmente)
può essere fissata molto prima.
Le variabili casuali
Pur essendo un sistema apparentemente
semplice, questo parcheggio possiede un
MCmicrocomputer ri. 38 - febbraio 1985
numero elevato di funzioni legate al caso.
La prima é ovviamente l'arrivo delle auto:
una volta arrivate queste devono effettuare
una sosta, casuale anche questa, al casello
di ingresso: poi raggiungono la piazzola di
sosta e vi permangono per un periodo più o
meno lungo e quindi, abbandonata la piaz-
zola. scelgono a caso l'uscita e qui sostano,
ancora casualmente, per il tempo relativo
al pagamento. Solo dopo aver completato
questa operazione le auto escono dal par-
dove P (x) è la probabilità di estrazione del
valore <x>. Come per la Poisson l'inte-
grale tra meno infinito e più infinito della P
(x) è uguale ad uno (questo garantisce che
qualsiasi numero possa essere estratto ogni
volta), ma il 95% dei valori estratti è com-
preso tra - 2SG e +2SG. ovviamente però
addensati intorno alla media.
Per quello che riguarda invece la scelta
dell'uscita, la funzione che la governa si
chiama Binomiale e. nella forma più este-
cheggio e quindi dal sistema (i più pignoli
possono ancora seguire le auto nella suc-
cessiva fila d'attesa necessaria ad immet-
tersi nel traffico!).
Tutte le volte che abbiamo detto caso
non si intendeva semplicemente un nume-
ro RND ( 1 ) generato dal computer, ma un
numero estratto si a caso ma con una preci-
sa distribuzione, una certa media e una
data varianza.
La distribuzione che gestisce il succeder-
si di eventi in una fila d'attesa classica è la
Poisson:
p(t> = 5Z _ e 83
i=o j!
che. tradotta in parole, rappresenta la pro-
babilità che si verifichi un arrivo dopo che
sono trascorse l unità di tempo dal prece-
dente c sapendo che l'intervallo medio fra
gli arrivi è <a>. La varianza della Pois-
son é uguale alla media e quindi ad <a>.
Il simbolo i! (si legge i fattoriale) corrispon-
de al prodotto dei primi <i> numeri natu-
rali: quindi 5! = 5x4x3x2xl = 120.
Per t che tende a infinito la sommatoria
precedente tende a uno e quindi all'evento
certo.
Per quanto riguarda invece il tempo del
servizio ai caselli e il tempo di sosta delle
vetture questo si distribuisce "Normal-
mente": detta MU la media e SG la varian-
za. la funzione di distribuzione è la seguen-
te:
<»-nu) !
sa. corrisponde a quanto segue:
-.p.(l-p)
Qui il primo fattore corrisponde al numero
di combinazioni tra n elementi presi a k a
k. pé la probabilità che l'evento A si verifi-
chi e l-p é ovviamente la probabilità oppo-
sta. P ( A) è allora la probabilità che esca K
volte su N il risultato A. Facciamo una
prova.
Qual è la probabilità che escano due sei
lanciando cinque dadi? La probabilità
<p> che esca il sei su un lancio è ovvia-
mente 16 (.1666 periodico) l-p diventa
quindi .8333 per cui sostituendo i numeri
alla formula si ottiene:
P(6) = 11 .0.167 2 . 0.833 5 " 2
(5-2) ! 2 !
che è uguale a 0.1606: quindi di poco infe-
riore a quella di fare 6 su un lancio secco!
Nel nostro caso però le cose si semplifi-
cano molto perché il “lancio" é uno solo,
tutto il primo fattore diventa perciò uguale
ad uno ad essendo (n-k)= 0 scompare an-
che l'ultimo fattore, per cui la probabilità
di scelta dell'uscita I diventa:
P (uscita 1) = p
e l'evento opposto (uscita 2)
P (uscita 2) = l-p
Era del resto intuitivo che se gli utenti
scelgono di uscire da < I > con probabilità
.6(60"„) usciranno da <2> il rimanente
40%.
Il programma
Il compito del programma Basic si può
dividere in tre parti: gestire le liste di attesa,
generare i numeri casuali da assegnare alle
varie operazioni secondo le funzioni di di-
stribuzione opportune e. infine, visualizza-
re l'andamento della simulazione.
La gestione delle liste di attesa si rivela il
compito più facile.
Vediamo come si sviluppa il processo
per grandi linee.
Ad ogni giro del clock (IO secondi) si
determina con la Poisson se é arrivato il
momento di far giungere una vettura: se si
si assegna subito a questa vettura un nume-
ro (nel programma equidistribuito tra
ME- VE e ME + VE) che corrisponde a
quanti cicli dovrà attendere, una volta
giunta al casello, prima di poter procedere.
Ogni nuova vettura arrivata si aggiunge in
coda al vettore della fila d'entrata E% (I)
esattamente come avviene in una fila vera:
LI indica il numero di vetture in fila e
quindi il numero di elementi del vettore che
sono occupati. Il vettore E% (I) contiene
quindi LI numeri che corrispondono ai
rispettivi tempi di attesa delle LI vetture.
Ogni giro di clock (corrispondente ad un
ciclo del programma) se Li è maggiore di
zero, e cioè se ci sono macchine in fila, si
dccrementa di uno il valore del primo ele-
mento del vettore e. quando questo è arri-
vato a zero, la macchina lascia il casello e la
fila compie un vero e proprio "passo avan-
ti". Alla vettura che ha lasciato il casello
viene assegnato ora il valore del tempo di
sosta (distribuito normalmente con media
MU e varianza SG) e. trovato un posto
vuoto (valore - I ) nella lista del parcheggio
PD% (I). vi viene depositato appunto quel
valore. Ad ogni giro del programma lutti i
numeri maggiori di zero contenuti nel vet-
tore vengono dccrementati di uno (il tem-
po di sosta passa per tutti) e se una o più
vetture arrivano a zero, queste vengono
inviate alle uscite. Anche qui. dopo aver
scelto quale uscita (vedremo poi come), si
assegna un tempo di permanenza al casello
e si mette in coda la vettura nei vettori
U I o U 2% che sono gestiti nel loop
principale esattamente come l'entrata.
Generazione di variabili casuali
Il problema che si pone con i personal
computer è la mancanza di generatori ca-
suali con distribuzione qualsiasi (o almeno
con le più comuni). Per ottenerle occorre
lavorare, non poco, con il generatore inter-
no e alcune funzioni di conversione che
devono essere nello stesso tempo precise e
veloci. Il metodo usato la volta scorsa (si-
mulazione di sala gruppi) per verificare se
un numero RND generato uniformemente
poteva appartenere o no ad una certa di-
stribuzione si può usare solo quando que-
sto calcolo viene eseguito un numero rela-
tivamente piccolo di volte all'interno del
programma, altrimenti si rischia di ottene-
re una simulazione "in tempo reale” o peg-
gio rallentata.
MCmicrocomputer n. 38 - febbraio 1985
Abbiamo perciò usato quel metodo solo
per gli arrivi (comunque ottimizzandolo)
che sono eventi relativamente radi. Per la
normale si è usata la classica conversione
Polare proposta (e dimostrata) da Knuth
nel suo The Art Of Programming più noto
come la "Bibbia di Knuth". Per il tempo di
permanenza ai caselli ci siamo accontentati
deU'equidistribuita per non appesantire
troppo il programma e soprattutto per non
aumentare oltre i già lunghi tempi di elabo-
razione.
Da RND(I) a Poisson
Il punto critico della distribuzione di
Poisson è il calcolo del fattoriale; primo
per il tempo che occorre, secondo perchè il
computer (Apple II) non calcola fattoriali
oltre 33!.
Per "fortuna" anche il valore a * 1 (vedi
formula) sballa dopo 20 '30 per cui la Pois-
son calcolabile su un personal non può
avere tempo medio di attesa superiore a 20;
è comunque vero che il valore di t necessa-
rio ad avvicinarsi ad I quel tanto che basta
a rendere l'arrivo pressocché certo è molto
inferiore a 20, per cui è sufficiente calcolare
i fattoriali fino a 25.
Il calcolo dei fattoriali è stato fatto pre-
ventivamente e tabellato nel vettore F (I);
per cui F (5) = 120, F (8) = 40320 e cosi
via. Anche tutti i valori della Poisson per t
che va da Q a 25 sono stati preventivamen-
te calcolati e messi in un vettore; visto poi
che di distribuzioni di Poisson ne servivano
14 (una per ciascuna ora, con medie diver-
se), si è messo il tutto in una “matriciona"
PA% (I.J) dove I sono le ore e J le decine di
secondi trascorsi dall’ultimo arrivo.
All'interno del programma si calcola un
numero RND(I) e si vede se è minore o
maggiore di PÀ% (I.J); se il numero gene-
rato è minóre del corrispondente Poisso-
niano si verifica un arrivo, altrimenti no.
Calcolate che con media 6 la Poisson vale
.9999 già dopo 8 cicli.
La parte di programma che genera la
Matrice va dalla riga 1200 alla riga 1280.
La matrice viene usata alle righe 370 - 390.
Da RND(l) a Normale
Il metodo di conversione utilizzato per
generare un numero con distribuzione nor-
male da una coppia di numeri equidistri-
buiti è particolarmente semplice e quindi
veloce, la precisione è più che sufficiente
per gli usi comuni ma molto dipende dalle
caratteristiche del generatore interno della
macchina. In effetti il generatore RND(I)
di un computer non genera realmente nu-
meri casuali (solo un’urna lo può fare) ma
con speciali algoritmi basati sul modulo di
divisioni e troncamenti vari permette di
ottenere, partendo da un numero base det-
to seme, un secondo numero apparente-
mente indipendente dal primo, usando
questo come seme si ottiene il successivo e
cosi via.
È chiaro perciò che partendo dallo stes-
so seme si otterrà sempre la stessa serie.
Un secondo difetto è il fatto che queste
serie, essendo il risultato di operazioni di
modulo, sono per forza cicliche, dopo un
certo numero di estrazioni riotterremo cosi
il seme iniziale e quindi di nuovo la stessa
Utilizzando dei semi molto grandi e del-
le divisioni per numeri particolari si garan-
tisce che la serie sia abbastanza lunga da
non creare problemi ad un uso comune.
La media di una variabile equidistribui-
ta tra A e B deve essere ovviamente A + B/2
e la varianza sarà (B-A) 2 /12.
Per conoscere l’efficienza del generatore
di numeri casuali della propria macchina
basta perciò generare un numero elevato di
valori e calcolarne:
Media X.
i=1 i
£(X.- M ) 2
e varianza Al]
e vedere se corrispondono ai valori calco-
lati per l'equidistrìbuita (vedi figura 3). Se
la media tende ad essere inferiore si dice
che il generatore è rosa se invece prevalgo-
MCmicrocomputer n. 38 - febbraio 1985
no i valori alti (media superiore) il genera-
tore sarà azzurro.
Se la varianza dilTerisce di molto, la di-
stribuzione, molto probabilmente, non sa-
rà uniforme e serviranno altre prove per
scoprire di quale distribuzione si tratta lu-
na prima prova potrebbe essere l'indice di
simmetria: tanti valori sotto la media
quanti sopra).
1 generatori di variabili casuali della Mi-
crosoft e quindi Apple, Commodore e
MSX. sono abbastanza precisi ma legger-
mente rosa (di pochissimo) e perciò tran-
quillamente utilizzabili, per altre macchine
occorre provare.
Tornando alla Normale, se il generatore
è buono il metodo polare garantisce buoni
risultati in tempi di elaborazione accettabi-
La conversione funziona in tre stadi e.
partendo da due numeri RND equidistri-
buiti tra 0 e 1 (incluso) genera una coppia
di numeri casuali appartenenti ad una di-
stribuzione Normale Standardizzata: cioè
con media 0 e varianza I .
Si comincia generando due numeri ca-
suali U1 ed U2, poi si calcola:
Vl= 2 x Ul - 1 (perciò -I « VI s£ +!)
V2=2 x U2-I (idem)
poi si calcola
S= VI* 2 x V2‘2
se S è maggiore o uguale ad I si scarta lutto
e si ricomincia, altrimenti si calcola
Nl= VI x SQR ((-2 x LOG (S))/S)
ed
N2= V2 x SQR ((-2 x LOG (S))/S)
NI ed N2 sono distribuiti normalmente
con media zero e varianza uno. A questo
punto basta moltiplicarli per la varianza
voluta e sommarci la media per avere i
valori definitivi. Il calcolo della normale
viene eseguito dalla riga 900 alla riga 940.
naturalmente si calcola un solo valore dato
che il secondo non serve.
MCmicrocomputer n. 38 - febbraio 1985
83
PUR l = l TQ
X = RND (1)
JRUN
MOMENTO 1 <.4 C ?9>
MOMENTO 2 (.333)
MOMENTO 5
MOMENTO 4 (.2 )
.502875298
.336213781
. 252536229
. 202202786
53 M3 = X3 7 I
54 M4 = X4 / I
60 PRINT "MOMENTO 1
61 PRINT "MOMENTO 2
62 PRINT "MOMENTO 3
63 PRINT "MOMENTO 4
(.499) "MI
(.333) "M2
(.25 ) "M3
(.2 ) "M4
Risimi -* - Programma per il rimirali,, della preeisiane , lei generatore ilìmimrr, rumili. I ri, minili , lev, ma estere il più
t irino passibile al valore leurieo strilla ira parentesi. Come si wde, il generatore ,lell‘ Apple è prullramenie perielio
Da RNP(l) a Binomi ale
E questo il caso più semplice in quanto
basta controllare se il numero generato,
che è già tra zero e uno. è minore o maggio-
re della probabilità dell'evento da sceglie-
re. In pratica se dobbiamo scegliere A nel
25"„ dei casi, B nel 45"„ dei casi e C' nel
rimanente 30", , delle volte, si genera un
numero RND(I) e se é minore di .25 si
sceglie A. se è compreso tra .26 e .65 si
sceglie B. se invece è maggiore di .7 si deci-
derà per C.
La Binomiale viene usata nel program-
ma per la scelta deU'uscitu alle righe 1020 e
1030.
Note al programma
Le prime righe del programma conten-
gono i parametri statistici dei vari caselli e i
limiti delle code; in fondo, alla riga 10000.
si trovano i dati relativi agli arrivi medi ora
per ora e dalla 10007 in poi la media e la
varianza del tempo di sosta per chi arriva
ad una certa ora (l'ora è uguale alle ultime
cifre del numero di riga); ricordarsi che il
95"„ dei valori generati con distribuzio-
ne normale è compreso tra -2 x SG e
+ 2 x SG. quindi con media 2000 e varian-
za 500 si ottengono valori compresi tra
1000 e 3000 salvo casi rari. Perconvertire le
ore in decine di secondi, che è l'unità di
misura del programma, bisogna ovvia-
mente moltiplicare per 360.
La gestione delle code, come spiegato
precedentemente, non è la migliore possi-
bile (è comunque la più facile da spiegare):
si potrebbe risparmiare lo scorrimento in
avanti della fila creando un puntatore al
"primo della fila" e muovendo lui anziché
la coda: questo rende la velocità costante
anche per code molto lunghe.
Per quanto riguarda la gestione delle
macchine in sosta, il ciclo FOR...NEXT
della riga 530 vada zero ad un fantomatico
PH: questo è il puntatorealla posizione più
alta (High) occupata dentro il vettore
PD",, (posti disponibili) e in questo modo
la velocità di esecuzione di un loop non
dipende più dalla dimensione del parcheg-
gio. ma solo dal numero di auto in sosta. Il
valore di PH sale ogni volta che una mac-
china in arrivo non trova posti liberi tra i
primi PH (riga 860). e scende fino al primo
posto occupato che trova, quando la mac-
china in posizione PH esce (righe
1010,1015). Per liste brevi, fino a cinquan-
ta posti, questo lavoro non è necessario e i
cicli possono andare tranquillamente da
zero al massimo numero di posti previsti
Con 50 macchine dentro un ciclo dura 8
decimi di secondo mentre, con 150. sale a 3
secondi, per diventare 4 secondi quando
arriva una macchina che deve cercare un
posto. La Dimension massima accettata
dall'Apple per il numero di posti é di
1 5000. ma la simulazione diventerebbe cer-
tamente troppo lenta.
Come accennato precedentemente, è
possibile sapere quanti posti occupati ha
incontrato una vettura in ingresso prima di
trovarne uno libero. La variabile è la J del
ciclo FOR...NEXT di riga 830. Per ottene-
re in uscita questo valore basta aggiungere
la seguente riga:
2195 PRINT "Felicità = ";J
Conclusioni
Con questo esempio abbiamo terminato
la gestione delle liste di attesa e anche buo-
na parte della trattazione matematica: a
questo punto molti saranno in grado di
applicare quanto detto anche ad altri pro-
blemi: gestione delle scorte in un magazzi-
no o delle telefonate ad un centralino e.
perché no, dell'arrivo e invio di messaggi in
una rete di computer.
Appuntamento alla prossima volta per
una nuova, divertente applicazione Mt
Dove trovare
le stampanti
Gateo
BARI: L & L COMPUTER - Largo 2 Giugno •
tei 080/224 277
FIRENZE: MARCO BARONI - Via Mallbran 5'
tei. 055/350.471
GENOVA SAMPIERDARENA: ARGE sm
Via N. Ronco 2 cane - lei 010/41 38.04
NAPOLI: E D.L srl - VIb Coriolano 3/C
tei 081/63.23.35
PADOVA (TENCAROLA SELVAZZANO): SITAL sr
Via Euganea 7 - tei 049/63 75 61
ROMA: INFO - Via Flavio Dominano IC
tei. 06/51 26700 - 5138023 - 5127381
al. 071/917 3520
BOLOGNA: INFORMATICA srl
tei, 051/24.03 69
BOLZANO: DAIAPLAN - Via (
ral86-tel 011/977 18,93
chiavar): tLCO sne - Via R Orsi 44
lei 0185/32 13 47
CIVITANOVA MARCHE: ELETTROCASA
63/71 - tei 0733/7
la Corte Vecchia 67
FERRARA: C I
tei 0532/48.648
GAETA. BIT COMPUTERS - Lungomare Caboto 74
lei 0771/47 01.68
GENOVA: RAPPR-EL - Via Borgoratti 23/i
tel 010/31 68 88-36 35 72
LATINA: BIT COMPUTERS - Via A Diaz 14
tei. 0773/49.5285
MERANO: COMPUTER MARKET
Via S Maria del Contorto - lei 0473/36.1 33
MESSINA: SOFIN soa - Via Don Blasco 75
tei 090/29.23 987
MILANO: ALL INFORMATICA SHOP - Via Uzza-
retto 2 - tei 02/28.70 105 • BITOMANIA sne - Via
Rosolino Pilo 3 - tei 02/20.43130 • L UFFICIO
e Longa 15/17
MONZA: MICROSHOP - V
tei. 039/38 98.50
PARMA: BIT SHOW - Borgo Parente 1-
lei 0521/25.014
PERUGIA: MICROCOGIT sa 5 - Via dei Filosofi
tei. 075/35.132
REGGIO CALABRIA: SOFIN spa - Via S Fran,
SCO di Paola 108/d - lei 0965/25 103
REGGIO EMILIA: COMPUTER CENTER
Via Dante Alighieri 4 - tei 0522/31 965
ROMA: ALTEC srl - Via Monte DOnorio 35 - le
06/79 41 755 • BIT COMPUTERS - Via Flavio Di
_ 5138,023
350/350a - tei 06/79.
14/16 - tei 06/85.82 96 • Viale -Ionio 333/335
tei. 06/81 70.632 • COMPUTER MARKET srl - P z
S Dona di Piave 14 - tei 06/79 45 43 • DATA OF
FICE spa - Via Sicilia ""
EPTA srl - Via Verona 30 - tei 06/42 84 13 • ME
MORY COMPUTER srl - Via Aureliana 39/43
06/4758 366 • PERSONAL COMPUTER - Pia Pio
SAVONA: GANORA INFORMATICA - Via Tonno 59
tei. 019/36.204
TORINO: IN D UT COMPUTER STUDIO sas - C so
Einaudi 8 - tei 011/59.55.94 • SOFTEC COMPU-
TER srl - Via Juvarra 24 - tei 01 1 /83 96 446
TRIESTE: COMPUTER MARKET srl
Via Val di Rivo 6 - tei 040/61 946
VERONA: ARMUFFICIO sne - Via Guglielmo Mar-
coni 36/38 - lei 045 / 33 812-38 874 • GUIDO
BIANCHI & C - Via Salti I - lei 045/59.00 1 1
VITERBO: BIT COMPUTERS - Via Palmanova !2c
tei 0761/22 39.77
MCmlcrocompuler n 38 - febbraio 1985
ANCHE PER MICRO
E PERSONAL
FIORISCONO
LE MARGHERITE»
CON JUKI
NATURALMENTE
JUKI serie 6000
Stampanti a margherita.
10-18-40 caratteri al secondo.
110 - 132 - 158 - 197 colonne (a 10, 12, 15 car/pollice).
Ampia scelta di margherite.
Fogli singoli - moduli continui.
Interfaccie standard, speciali, bufferizzate.
Nessun problema di collegamento: le margherite JUKI "crescono bene"
nel campo degli home, personal, micro e minicomputer.
Master Distributor: Juki (Europe) GMBH - Eiffestrasse 74 - 2000 Hamburg 26 - Germany
Streams e Channels: il sistema di I/O dello Spectrum
Questo mese vogliamo occuparci di un
argomento mollo interessante: come il Basic
dello Spectrum gestisce le operazioni di
inputì output UtO).
Queste operazioni sono fondamentali per
il funzionamento di un calcolatore, perchè è
tramile esse che l'unità centrale comunica
con il mondo esterno, ricevendo dati dalle
periferiche o trasmettendoli.
Le periferiche non devono necessariamen-
te essere esterne alla consolle: ad esempio,
come vedremo, la tastiera è trattata alla
stessa maniera dello schermo o della ZX
printer: la prima unità ovviamente spedisce
dei dati all'unità centrale e le altre due ne
Nonostante sia decisamente sofisticato e
versatile, il sistema di I/O dello Spectrum
non viene praticamente menzionato dal ma-
nuale originale: ne parla invece I anche se
molto superficialmente ) il manuale dell'in-
terfaccia I.
È veramente un peccato che la Sinclair sia
stala cosi reticente, perchè la conoscenza —
anche se non approfondita - dell'argomen-
to può risultare utile in numerose occasioni
anche a chi non ha nè l'interfaccia I nè i
microdrive, ed è praticamente indispensabi-
le a tulli gli appassionati di hardware che
hanno intenzione di interfacciare qualche
periferica autocostruita al loro computer.
In questo articolo, rivolto soprattutto ai
possessori dello ZX in versione base, ci pro-
poniamo quindi di illustrare i concetti fonda-
mentali relativi all' I/O dello Spectrum.
Come abbiamo detto le operazioni di
I/O permettono al computer di comunica-
re con l'esterno: esse coinvolgono sempre
una periferica che genera dati (ad es. la
tastiera, un convertitore analogico/ digita-
le...) o li riceve (ad es. Io schermo, una
stampante...) e. ovviamente, dei dati in
viaggio da o verso l'unità centrale.
Facciamo un paragone con qualcosa di
sicuramente familiare: immaginiamo che
l'unità centrale sia un amplificatore audio,
la periferica una cassa acustica ed i “dati" il
segnale musicale.
Perché il segnale possa giungere alla cas-
sa acustica è necessario collegare quest' ul-
tima all'amplificatore con un filo: allo stes-
so modo si può pensare che dei dati possa-
no viaggiare dall'unità centrale ad una pe-
riferica (e viceversa) soltanto se i due di-
spositivi sono uniti fra loro da una sorta di
"filo" ideale.
Per il Basic dello Spectrum le cose fun-
zionano proprio cosi: per poter scambiare
dati con una periferica bisogna prima ef-
fettuare il collegamento con uno di questi
fili ideali, che vengono chiamati stream
(letteralmente il termine significa "ruscel-
lo"). Gli stream a disposizione sono 16,
numerati da 0 a 1 5 e vengono identificati
premettendo al numero corrispondente il
segno (si legge hash).
E importante sottolineare che agli
stream non corrisponde una vera e propria
realtà fisica: in altre parole essi sono otte-
nuti via software e non via hardware.
Anche le periferiche hanno un nome
convenzionale, e sono chiamate channel.
Un channel viene indicato con una lettera
maiuscola.
Ricapitolando: i channel sono dei dispo-
sitivi che possono generare c/o ricevere da-
ti, mentre gli stream sono i cammini ideali
che vengo percorsi dai dati.
Uno Spectrum in versione base ricono-
sce i seguenti tre channel:
CANALE USO
K tastiera/parte inf. dello
schermo
S parte sup. dello schermo
P ZX printer
il primo può sia trasmettere dati (tastiera)
che riceverli (parte inf. dello schermo, dove
sono visualizzati i messaggi di errore),
mentre il secondo ed il terzo possono solo
riceverne.
STREAI1
n .
IDENTIFICATORE
DI CANALE
USO IN
OUTPUT
USO IN
INPUT
0
K
parte
i nf e r i o re
dello schermo
tast i e ra
1
K
parte
i nf e r i o re
dello schermo
tast i e ra
2
S
parte
supe r i o re
dello schermo
nessuno
3
P
ZX p r i nte r
nessuno
Tabella 1 - Canal
riconosciuti dallo Spectrum in ir
sione base e relativi collegament
con i canati * 0... * 3.
MCmicrocomputer n. 38 - febbraio 1985
10 REM ***********************
20 REM * *
30 REM * STREAM LI STER *
40 REM * *
50 REM ***********************
60 REM
1000 DEF FN PCP1=PEEK P+256*PEEK CP+11
1005 CLS : PRINT TAB 8: INUERSE l:"USO D
EGLI STREAM"
1010 PRINT "Stream " ;tab 7 : ‘ In ''Out " ; TAB 1
4: Nome";TftB 19:"Uso"
1020 FOR s=-3 TO 15
1025 PRINT TAB 2.s :
1030 LET d=FN p C s*2+23566+81
1040 IF d=0 THEN PRINT TAB 19: INUERSE
1 : "non usato" : GO TO 1200
1050 LET d=d+FN PC236311-1
1060 IF FN p Cd+21 05572 THEN PRINT TAB
7: "In" :
1070 PRINT TAB 9;'V" :
1080 IF FN p Cd 1 05572 THEN PRINT TAB 10
: "Out " :
1090 LET f*=CHR* PEEK Cd +41
1100 PRINT TAB 14 : " . + $: '“.TAB 19:
1110 IF f*="K" THEN PRINT "schermo inf.
" : GO TO 1200
1120 IF f$="S" THEN PRINT "schermo sup.
: GO TO 1200
1130 IF f*="P" THEN PRINT "stampante":
GO TO 1200
1140 IF f $="M" THEN PRINT "^crodriue" :
GO TO 1200
1150 IF f*="N" THEN PRINT "network": GO
TO 1200
1170 IF f$="T" THEN PRINT "RS 232": GO
TO 1200
1180 IF f*="R" THEN PRINT "area lavoro"
: GO TO 1200
1190 PRINT FLASH l:"Non specificato"
1200 NEXT s
1210 PRINT AT 0.0
1500 INPUT "Numero dello s tre am ?
CENTER per use i re 3" i LINE s$
1505 IF s$="" THEN STOP
1510 CLS
1515 LET s=UAL si
1520 PRINT TAB 10: INUERSE 1 : "STREAM NUM
ERO " :s"
1530 LET d=FN p C s*2+23566+81
1540 IF d=0 THEN PRINT "STREAM CHIUSO":
GO TO 1500
1550 LET d=d+FN pC236311-l
1560 LET f$=CHR$ PEEK Cd +41
1570 PRINT "Identificatore di canale:
1600 IF f $="K" THEN
1610 IF f$="S" THEN
1620 IF f$="P" THEN
1630 IF f ♦="M" THEN
1640 IF f *=" T" THEN
1650 IF f ♦="N“ THEN
1660 IF f ®=“R" THEN
1670 PRINT FLASH 1:
GO TO 2000
GO TO 2020
GO TO 2040
GO TO 2500
GO TO 3000
GO TO 3500
GO TO 2050
'Identificatore
1820 IF FN p C d 1=5572 THEN PRINT FLASH
1 : "So lo Output"
1830 IF FN p Cd +2 1=5572 THEN PRINT FLAS
H 1 : "Solo Output"
1840 IF FN p Cd 1 08 AND FN pCd+2108 THEN
RETURN
1850 PRINT "Shadow ROM output :":FN P Cd
■*■51
1860 PRINT "Shadow ROM input :";FN pCd
+71
1870 RETURN
2000 PRINT INUERSE 1: "Schermo inf./'tast
2010 GO TO 2060
2020 PRINT INUERSE 1: "Schermo sup."
2030 GO TO 2060
2040 PRINT INUERSE l:"ZX printer"
2045 GO TO 2060
2050 PRINT INUERSE l:"Area di lavoro"
2060 GO SUB 1800
2070 GO TO 1500
2500 PRINT INUERSE 1 : "MICRODRIUE"
2510 GO SUB 1800
2520 PRINT "Drive numero :";PEEK C
d+251
2530 LET m=FN p Cd +261
2540 PRINT "Mappa del nastro : "
2550 FOR i=0 TO 31: FOR j=l TO 6
2560 POKE 16384+2048+2K32+JX256+31- i . PEE
K Cm+il
2570 NEXT J : NEXT i
2575 PLOT 0,95: DRAUI 255.0: PLOT 0.88: D
RAUI 255.0
2580 PRINT '"Area della mappa :":m:'-"
:m+31
2590 PRINT "Nome cartuccia
2600 FOR i =d +44 TO d+53
2610 PRINT CHR$ PEEK i :
2620 NEXT i : PRINT
2630 PRINT "Nome del file
2640 FOR i =d+l 4 TO d+23
2650 PRINT CHR* PEEK i :
2660 NEXT i: PRINT '"Spazio libero
2670 LET f=0
2680 FOR i=0 TO 255
2690 LET f =f +NOT POINT Ci, 901
2700 NEXT’ i
2710 PRINT f -'2 : " Kbytes"
2720 GO TO 1500
3000 PRINT INUERSE 1:"RS 232 ":
3010 IF FN p Cd+51=3132 THEN PRINT "Text
" : GO TO 3040
3020 IF FN p Cd+51=3162 THEN PRINT “Bina
*'y": GO TO 3040
3030 PRINT " CSconosc i uto 1 "
3040 GO SUB 1800
3050 PRINT "Baud rate :":INT C3
500000/'CCFN p C 23747 1+2 1X261 1 : " Ccircal"
3060 GO TO 1500
3500 PRINT INUERSE 1 : "NETWORK"
3510 GO SUB 1800
3520 PRINT "Stazione numero :":PEEK 23
749
3530 PRINT "in trasmissione verso" ;PEEK
f d + 1 1 1 ’ " C i n broadcast!" AND PEEK Cd + lll =
0
3540 GO TO 1500
Usuilo - Questa ulUlly, traila dal libro di Andrew Penne I " Master tour ZX microdrive", consente di ottenere numerose informazioni sullo stato corrente di stream e channel. Il
programma controlla anche i canali (non menzionati nell'articolo I riconosciuti dallo Spectrum in presenza di Interfaccia ! e Microdrive.
MCmicrocomputer n. 38 - febbraio 1985
87
A dire il vero esiste anche un quarto
canale. l'R. che però è accessibile solo da
linguaggio macchina e non da Basic.
Per mandare dati ad uno stream O per
riceverli si possono usare i seguenti coman-
di Basic:
PRINT 5 < numero di stream > (output)
INPUT s < numero di stream > (input)
LIST * « numero di stream > (output)
INKEYS ' < numero di stream > (input)
con la solita sintassi.
Vediamo ora come si effettua l'opera-
zione di collegamento tra uno stream ed un
channel; il comando da utilizzare è OPEN
# (si trova sul tasto 4) con questa sintassi:
OPEN 5 < numero di stream >, "identi-
ficatore di channel > "
È anche possibile scollegare uno stream
ed un channel uniti in precedenza, usando
il comando:
CLOSE s «numero di stream >
Si noti che non è possibile collegare lo
stesso stream a più channel (si otterrebbe il
messaggio di errore ■'stream already o-
pen"). mentre è perfettamente lecito colle-
gare stream diversi allo stesso channel.
A questo punto abbiamo appreso tutto
ciò che è necessario per effettuare qualche
piccola prova pratica.
Proviamo, per esempio, a mandare dei
dati allo schermo (superiore) attraverso il
canale 6.
Il canale corrispondente alla parte supe-
riore dello schermo è l'S. quindi per prima
cosa bisognerà dare il comando:
OPEN 5 6, "S"
poi si possono mandare i dati con il co-
mando PRINT, ad esempio
PRINT 56; "PROVA
Dato che il tutto è perfettamente equiva-
lente a PRINT "prova" (vedremo tra poco
il perché) proviamo a fare qualcosa un po’
più interessante, ad esempio scrivere sulle
righe dello schermo in basso, sfruttando il
fatto che ad esse corrisponde il canale K.
Colleghiamo uno stream:
OPEN S4."K“
e poi diamo i comandi PRINT 54: "pro-
va": PAUSE 0; la seconda istruzione serve
per impedire l'apparizione del messaggio
di OK, che altrimenti si sovrapporrebbe
alla nostra scritta.
Già che ci siamo proviamo anche a fare:
PRINT 4; AT 0.0: "RIGA 23 '; AT 1,0;"RIGA
24" , PAUSE 0
per dimostrare che effettivamente PRINT
5 può essere usalo come il normale
PRINT.
Con la prima prova effettuata abbiamo
visto che un PRINT 5 è perfettamente e-
quivalente ad un PRINT normale, a patto
di collegare lo stream che si vuole utilizzare
con il canale S.
Vediamo il perchè.
Subito dopo l'accensione, lo Spectrum
esegue una routine di inizializzazione. che
tra le altre cose effettua automaticamente
alcuni collegamenti tra i primi quattro
stream ed i channel K. SeP secondo la
seguente tabella:
STREAM CHANNEL
SO K
52 S
53 P
Il comando PRINT poi è in pratica una
forma concisa di PRINT #2; a questo pun-
to risulta chiaro che PRINT e PRINT »
(con uno stream diretto verso lo schermo)
sono in pratica la stessa cosa, in quanto, se
non viene specificato uno stream, lo Spec-
trum ne usa automaticamente uno già col-
legato con lo schermo.
Lo stesso discorso può essere fatto per
LIST, che è in pratica LIST #2, mentre
LPRINT equivale a PRINT 53 (provare
per credere).
Non è affatto detto che questi collega-
menti automatici non debbano essere mo-
dificati: ciò è perfettamente fattibile, usan-
do normalmente OPEN 5 e CLOSE 5. An-
zi, alle volte la cosa può rivelarsi estrema-
mente utile; ad esempio, sviluppando un
programma che contiene degli LPRINT. si
può. in fase di debugging, dirigere l'output
verso lo schermo con un OPEN #3. "S" per
non sciupare inutilmente carta.
Ecco un altro esempio. Supponete di a-
vere in un programma una subroutine che
stampi dei dati con una serie di PRINT: si
può fare in modo che la stampa avvenga, a
richiesta, su schermo o su carta:
lOOINPUT' SCREEN OR PRINTER (S/P) : A$
110 IF A$= "S" THEN GOSUB 1000:GO-
TO200
120 IF A$< >“N" THEN GOTO 100
130 OPEN #2, "P"
140 GOSUB 1000
150 CLOSE 52
200 «seguito programma >
1000 REM routine di stampa
1010
1020
1999 RETURN
Si potrebbe pensare che cambiare i colle-
gamenti degli stream da 0 a 3 possa in certi
casi confondere il computer, si immagini
ad esempio cosa succederebbe durante i
listing automatici (quelli ottenuti premen-
do semplicemente ENTER ) se venisse alte-
rato il collegamento dello stream #2. Inve-
ce lo Spectrum è perfettamente protetto
contro le modifiche "pazze", in quanto
possiede tre stream aggiuntivi, non modifi-
cabili da Basic, permanentemente collegati
ai canali K. S. R in questo modo:
STREAM CANALE
-1 R
-2 S
-3 K
ciò permette al Basic di non confondersi
mai.
Come abbiamo specificato, il sistema
degli stream e dei channel è ottenuto da
software, quindi da qualche parte della
memoria saranno memorizzate tutte le in-
formazioni relative.
Prima di concludere la puntala vediamo
dunque dove sono situate queste informa-
zioni e come sono memorizzate.
La Channel Information Area, come di-
ce il nome, contiene le informazioni relati-
ve ai canali, composte da blocchi di 5 byte
cosi formati: i primi due byte costituiscono
un puntatore alla routine che manda i dati
dalla periferica identificata da quel canale,
i secondi due sono un puntatore alla routi-
ne che riceve i dati dalla periferica e il
quinto byte é il carattere ASCII della lette-
ra che identifica il canale.
Se il canale può solo trasmettere o rice-
vere daii, l'indirizzo rispettivamente della
prima o della seconda routine sarà quello
della routine di gestione dell'errore (5572).
Infine la variabile di sistema STRMS.
lunga 38 byte (2 byte per ognuno dei 16+3
stream), contiene la tabella dei collega-
menti Tra stream e channel; ogni coppia di
byte rappresenta un numero che indica la
distanza (in byte), dall'inizio della Channel
Information Area, delle informazioni rela-
tive al channel collegato a quello stream +
I . Arrivederci al prossimo TuttoSpectrum.
MCmicrocomputer n. 38 - febbraio 1985
MI.PE.CO.
ESTENSIONE PER SPECTRUM
399.000 “ZS».
COMPRESE: 4 cartucce con 5 programmi (introductory,
master file, tasword two antattack, games designer),
Istruzioni in italiano
INTERFACCIA UNO
SPECTRUM 48K PLUS
con lo SPECTRUM plus istruzioni in italiano e in regalo 5 programmi in italiano (conto corrente, grafica funzioni,
bioritmi, esapedone-chess + il Supercopiatore di Massimo Rossi).
qQO
QL 1.199.000
alimentatore, manuale in inglese, 8 cartucce. 4 programmi. Consegna circa
nuovo SPECTRUM 48K PLUS 399.000
130.000 lire Oi software in regalo
INTERFACCIA UNO + MICRODRIVE 299.000
(4 cartucce con 5 programmi maslerfile. tasword two
MICRODRIVE 149.000
STAMPANTE ALPHACOM 32 199.000
per Spectrum e ZX 81 istruzioni in italiano. 1 rullo di carta In regalo
EPSON RX 80 F/T+ 769.000
AVVERTENZE:
-pagamento contrassegno al ricevimento del pacco
-segreteria telefonica in funzione fuori orario, chiedete listini
o altre informazioni Vi risponderemo
-sconti quantità
INFORMAZIONI E ORDINI:
MI.PE.CO. - Cas. Postale 3016 00121
INTERFACCIA PARLANTE CURRAH 99.000
manuale completo In Italiano. Tutti i suoni attf averso il Vostro televisore
TRISLOT 27.000
(presa tripla per Spectrum)
10 RULLI di carta termica
x ALPHACOM 32 32.000
4 CARTUCCE x MICRODRIVE 64.000
ESPANSIONE + 32Kx SPECTRUM .. 79.000
(issue 2 o 3 specificare, lacilissima da montare, Istruzioni dettagliate in
italiano con totogralie. porta il Vs. Spectrum da 16K a 48K (ad esaurimento)).
SUPER COPIATORE con verify 15.000
GARANZIA 48H
RIPARAZIONI SPECTRUM
PARTI DI RICAMBIO PER SPECTRUM
ROMA (OSTIA) - Tel. 06/5611251
Finalmente dalla Xebec —
la Memoria di Massa
Ultracompatta
Il sottosistema a dischi Winchester 9710H non
poteva essere creato che dalla Xebec, l'azienda
ultra-innovativa che ha inventato il
leggendario Controller S1410.
Il sottosistema 9710H, "slim" nella forma, è
però ricco di avanzate prestazioni di sistema
quali:
• 10 Megabyte di capacità formattata in
dimensioni molto ridotte.
• Connettori di I/O di tipo a vaschetta per
facilitare sia la connessione singola che di
più unità.
• Rilevamento e correzione automatica degli
errori per la massima integrità dei dati.
•Raffreddamento per convezione naturale,
massima silenziosità in ufficio in quanto
privo di ventilatori.
• Ampia scelta di adattatori SASI per i Mini/
Microcomputers più diffusi.
• Piacevole nell'aspetto ed avanzato disegno
industriale.
Tutte queste prestazione alleggeriscono il
carico al Vostro PC, ma non appesantiscono il
Vostro budget in quanto le grandi economie
di scala ottenute dalla Xebec concorrono
sensibilmente aH'abbattimento dei costi, alla
riduzione dei prezzi ed all'estensione della
garanzia pari a un intero anno!
La firma "Xero D" della Xebec che compare su
questa pagina è il marchio di qualità della
società.
Il marchio identifica l'obiettivo aziendale di
eliminare tutti i difetti di ogni programma e
prodotto realizzati all'interno della Xebec.
Questo impegno costante verso la qualità
unita ai continui e notevoli investimenti sia
nei prodotti che nelle
tecnologie produttive,
fatto guadagnare alla
Xebec la sua
posizione di
fornitore primario
di tecnologie
avanzate per i sistemi
microcomputerizzati.
Xebec International
Via Cola di Rienzo, 149
00192 — ROMA
Tel: (06) 350201
Telex: 620114 FGS
Distributore:
Tre Più srl
Via Asmara 58 - 00199 Roma
Tel. 06/8394458 - 8395766
Tlx. 616130
Company
Porlo più FORTH
di Raffaello De Masi
Settima parte
Variabili, costanti ed array
Finora abbiamo sempre utilizzato, per
maneggiare ed utilizzare valori, lo stack; la
filosofia e la grande potenza del FORTH si
basa appunto sull'uso di questa struttura il
cui accesso è oltremodo rapido. Talora,
però, anche utilizzando tali strutture, risul-
ta difficile risolvere complesse situazioni
numeriche. Uno per tutti, valga l'esempio
di utilizzo di un certo valore diverse volte
in un programma od in una definizione,
per conservare il quale dovremmo ricorre-
re a complicate manipolazioni dello stack.
Appare allora conveniente potersi riferire
a certi valori chiamandoli con un nome,
cosa che ci consente di evitare lo sforzo di
rammentare il loro effettivo valore. È il
caso classico dello statement LET del Ba-
sic. solo che. in Forth. la cosa è leggermen-
te diversa.
Premesso che le modalità operative in-
terne sono, in Basic come in Forth. prati-
camente le medesime (vale a dire, viene
scelta una locazione, ad essa va assegnalo
un nome, ed in essa viene immagazzinato
un valore) nel nostro linguaggio esiste una
differenziazione che nel Basic non c'è. In
Forth. infatti, è possibile utilizzare per l’in-
casellamento dei dati due tipi strutturali
diversi: le costanti e le variabili. La diffe-
renza tra le due è che la prima rappresenta
un valore, inserito in una locazione, che
rimane generalmente sempre eguale a se
stesso (sebbene possa essere, con qualche
difficoltà, cambiato) mentre la seconda è
costituita da una o più locazioni consecuti-
ve, in possesso di un nome, che possono
accogliere, volta per volta, valori diversi,
con contenuto, appunto, variabile.
1 n queste puntate parleremo delle moda-
lità di assegnazione e di manipolazione dei
valori con le costanti e le variabili, nonché
possibilità di preparare array mono e plu-
ridimensionali.
Le Costanti
Identificare una costante significa prati-
camente assegnare un nome od un nume-
ro. secondo la forma
n CONSTANT nome
in cui nome è una sequenza di caratteri
alfanumerici (senza le limitazioni del Basic
e del Pascal) che, generalmente, non può
essere lunga più di 31 caratteri.
Ricordiamo, per inciso, come sia sempre
possibile ridefinirc una word, per cui, a chi
non piacesse utilizzare il termine inglese, è
sempre possibile eseguire
: CONSTANT COSTANTE ;
per poter nlilizzare la forma
n COSTANTE nome
ad esempio la sequenza
141 CONSTANT MCMICRO
consente di conservare il CAP della reda-
zione nella variabile nominata.
A tutti gli effetti si tratta di una vera e
propria definizione; infatti
; MCMICRO 141 (si sottintende 00) :
consente lo stesso risultato, ma impiega
più memoria o più tempo ad essere esegui-
ta.
Una volta assegnata, una costante man-
tiene generalmente sempre lo stesso valore
o significato. È la regola fondamentale,
che differenzia queste dalle variabili (si ri-
cordi che. con le costanti, non esistono
coinvolgimenti relativi od indirizzi di me-
moria, ma solo un rapporto diretto defini-
zione-valore, il che giustifica la loro mag-
giore rapidità); potrebbe però succedere
che per un qualsiasi motivo occorra varia-
re tale valore. Ciò richiede la seguente pro-
cedura
ni ' nome I
Per esempio, per inserire il numero civi-
co della redazione al posto del primo avre-
135 ' MCMICRO !
Questo determina tre passaggi: l’inseri-
mento del numero dello stack. la ricerca
dell'indirizzo della parola MCMICRO e
l'inserimento del valore 135 al suo posto.
Le Variabili
Per definire una variabile in FORTH-79
basta scrivere la word VARI ABLE seguita
dal nome della variabile stessa.
Rifacendosi all'esempio precedente
VARIABLE MCMICRO
registra il nome MCMICRO nel diziona-
rio e riserva 2 byte destinati ad accogliere
l'eventuale numero da associare ad esso. È
importante ricordare che. in questo mo-
mento. tale spazio contiene un valore inde-
finito (e non zero). Per assegnare di nuovo
il numero di CAP alla definizione avremo
141 MCMICRO !
In FIG-FORTH la cosa è più semplice.
In elTetti inizializzazione di variabile ed
assegnazione di valore sono contempora-
nei. con la forma
n VARIABLE nome
e nel nostro caso
141 VARIABLE !
che abbina gli effetti delle due precedenti
definizioni in FORTH-79. Come già evi-
denzialo precedentemente, esiste una
grande differenza tra il modo operativo
delle costanti e delle variabili. Chiamando
le prime, si ottiene direttamente il valore,
trattandosi, per certi versi, di sequenze di
operazioni simili alle word. Vale a dire che
mentre il richiamo ad una costante forni-
sce direttamente il risultato mettendolo in
TOS
MCMICRO (MCMICRO definito come CON-
STANT)
(l'esecuzione lascia in TOS il
valore 141)
MCMICRO (MCMICRO definito come VA-
RIABLE)
lascerà in TOS l'indirizzo del valore 141.
Per sapere effettivamente il valore di
MCMICRO occorrerà battere
MCMICRO (u (lascia il valore in TOS)
oppure
MCMICRO «r DUP .
MCMICRO ?
qualora il valore voglia essere contempo-
raneamente visualizzato e conservato in
TOS.
Una utile applicazione delle variabili è
quella, come succede spesso nel controllo
di strumentazione, di funzionare da conta-
tori numerici. Ad esempio, una macchina
contatrice potrebbe essere cosi regolata (in
FORTH-79)
VARIABLE CONTATORE (definisce la variabile)
0 CONTATORE I (inizializza CONTATO-
RE ad ogni valore od
oggetto da contare for-
OUP BEGIN 1
WILE CONTATORE (inserisce in stack l’in-
dirizzo della variabile)
+ 1 (aggiunge 1 al valore
presente all'Indirizzo)
REPEAT
DROP CONTATORE c "ho contato" 'oggetti"
MCmicrocomputer n. 38 - febbraio 1985
Le Array
Ad onor del vero non so se l'articolo
femminile plurale va bene o no! Le buone
regole della grammatica italiana, che la
mia maestra cercava di impormi a bacchet-
tate sulle ginocchia inorridiscono, come i-
norridiscono di fronte alle finezze di far
terminare il plurale delle parole inglesi con
la s. dimostrando buona conoscenza delle
lingue straniere e scarsa di quella italiana.
Comunque le array. come anche il più
bolso dei programmatori sa. sono un utile
mezzo di raccolta, in maniera ordinata, di
dati che hanno, per cosi dire, una matrice
od un riferimento comune e conviene per-
tanto incasellare, anzi, schierare in un uni-
co gruppo. Ad esempio immaginiamo che
Marinacci, il despota, voglia tenere conto
di lutti i compensi (magri, anzi magrissi-
mi). elargiti, durante l'anno, agli instanca-
bili collaboratori. Secondo quanto visto
finora dovremmo dimensionare tante va-
riabili quanti sono i collaboratori: è possi-
bile. però, utilizzare un gruppo di variabili.
Tacenti capo allo stesso capoverso cui far
riferimento in maniera più rapida e, co-
munque, che occupi meno spazio in mcnio-
Una array. quindi, può essere definita
come un raggruppamento logico di varia-
bili identicamente conformate. Ad esem-
pio. immaginando che ogni articolo venga
compensato con una cifra variabile tra le
500 e le mille lire (non ridete), sarà suffi-
ciente che ogni variabile sia formata di due
byte (senza segno, ovviamente) con un va-
lore massimo immagazzinabile annuo di
65535 (pura illusione). Per 10 collaboratori
sarà pertanto necessario disporre di 20 by-
te riservati, due byte per ciascun collabora-
tore.
Cominciamo col definire la variabile con
un nome. COMPENSI (o magari MISE-
RIE) va bene come un altro.
Una volta definita
VARIABLE COMPENSI
esisterà in memoria il nome COMPENSI
con. a disposizione, due byte di spazio ri-
servati a tal nome (figura I).
La variabile COMPENSI ha. però, ne-
cessità. come abbiamo visto, di 20 byte. È
possibile espandere, per cosi dire, la varia-
bile COMPENSI aggiungendovi altri 18
byte. La procedura per eseguire ciò, piut-
tosto semplice, è
18 ALLOT
eventualmente eseguita tutt'insieme con la
fase precedente.
A questo punto occorre spezzettare tale
grossa variabile in 1 0 più piccole di cui fare
uso. È possibile, pertanto far riferimento
ad ogni casella utilizzando l'indirizzo di
partenza ed aggiungendo ad essa il numero
di byte necessario.
Poiché questo numero è funzione del
nome del collaboratore cominciamo ad as-
sociarli fra di loro nel modo
0 CONSTANT ANGELETTI
2 CONSTANT BERGAMI
4 CONSTANT DE MASI
6 CONSTANT DE PRISCO
e cosi via, utilizzando le definizioni di co-
stanti visto che si tratta di valori non desti-
nati a cambiare e vista la notevole rapidità
d'intervento di tale definizione.
A questo punto la cosa diviene molto
semplice. Immaginiamo di voler inserire il
numero 100 nella casella riservala a Giu-
stozzi: avremo
100 COMPENSI GIUSTOZZI + !
che sarà seguito dall'imperturbabile OK.
Se. in qualsiasi momento, vorremmo ad-
dizionarvi un altro valore, ad esempio 235
basterà battere
135 COMPENSI GIUSTOZZI + +!
e per leggere gli emolumenti ricevuti
COMPENSI GIUSTOZZI + ?
Per array molto estese (per esempio
quando la Technimedia diventerà una
multinazionale ed avrà 500 collaboratori)
diviene impratico definire una costante per
ogni posto (sia questo uno o più byte),
anche perché ciò va a scapito, comunque
della quantità di memoria a disposizione.
In questi casi é molto meglio, anche se un
po' meno pratico, far riferimento ad un
determinato numero indicandolo con il
suo valore di scartamento rispetto al valo-
re iniziale di indirizzo.
Per esempio, utilizzando il caso prece-
dente avremo
VARIABLE COMPENSI (definisce la variabi-
le compensi)
499 2 • ALLOT (e costruisce una array di 500
posti di due byte ognuno).
Questa nuova versione di COMPENSI
contiene una array di 500 posti di due byte
ciascuno e, insieme, ogni numero (due by-
te) o. per meglio dire, ogni allocazione di
esso ha un indirizzo che è due volte più
grande del numero che lo precede. Cosi
Angeletti é allocato all'indirizzo iniziale.
Bergami aH’indirizzo + 2, ecc. e l'improba-
bile collaboratore Zuzzerelloni all'indiriz-
zo + 1000. La forma generale del valore di
scartamento all'indirizzo iniziale è:
Valore = 2x n - 2
dove n é il numero di matricola progressi-
vo assegnato al collaboratore.
A questo punto, per inserire il valore 50
al collaboratore n. 375 batteremo
50 COMPENSI 375 2 • 2- + I
e per leggere il valore corrispondente al
collaboratore 175
COMPENSI 175 2 ■ 2- + ?
Alcune array, usate generalmente, com-
pletamente o in parte, come strutture di
dati iniziali hanno, ad esempio, bisogno,
all'inizio di un programma, di essere inizia-
lizzate ad un determinato valore. In Basic
veniva per lo più usata la struttura
READ... DATA, non scevra di possibilità
d’errore. In Forlh. oltre che la semplice
assegnazione uno ad uno dei valori di ar-
ray (assurdo se si pensa ad array di alcune
centinaia di posti) è possibile utilizzare una
struttura diversa, che Ta capo alla word [.]
(le parentesi quadre non c'entrano, sono
state qui messe solo per non confondere la
word con un segno di interpunzione).
Ad esempio, se il solito Marinacci voles-
se tenere conto, per lesinare la lira ed evi-
denziare al terrorizzato e sprovveduto col-
laboratore, che ingenuamente chiede un
aumento, i compensi già percepiti, all'ini-
zio dell'85 avrebbe bisogno di immagazzi-
nare. nelle caselle dell'array COMPENSI, i
denari già percepiti immeritatamente dagli
schiavi. La word [.] va cosi utilizzata
VARIABLE COMPENSI I
1500 ANGELETTI ! (imzializza la variabile
al compenso già perce-
pito da Angeletti).
1200, 600, 400, 1300,
350, 1750, 720, 1485, (e cosi via)
Per essere più precisi, la word [,] é una
combinazione delle word ALLOT e !. Essa
riserva due byte nel dizionario cosi come 2
ALLOT e conserva il numero inTOS(Top
Of Slack) in questi due byte, come fa la
word !. Fin qui tutto chiaro, per quanto
possa essere chiaro un divulgatore di mez-
za tacca quale il buon De Masi, in barba al
detto del mio vecchio professore di fisica
terrestre che asseriva che quando uno par-
la e l'altro non capisce, chi parla, la cosa o
non la sa o non te la vuol dire!
E fin qui. fintanto che le array da creare
od inizializzare sono due o tre, la sequenza
VARIABLE - ALLOT va pure bene. Ma.
quando le array cominciano a diventare
più di una. potrebbe essere più conveniente
automatizzare la procedura.
Sto scrivendo questo articolo il giorno
della vigilia di Natale c le montagne di
Avellino non promettono niente di buono,
pioggia sicura, neve probabile. E non pro-
mette niente di buono neppure mia moglie
che sta decidendo di cambiare l'arreda-
mento in camera da letto. Come potrò fare
a conservare l'elenco di tutte le spese di
questo santo giorno (santo anche, preve-
do. per l'arredatore con cui discute mia
moglie) ordinandole secondo voci diverse?
Occorrerebbe creare diverse array e. vi-
sto come si sta esaurendo, precipitosamen-
te, il libretto degli assegni sarebbero vera-
mente molte. Con VARIABLE la cosa é
certo possibile, ma sarebbe molto più eon-
92
MCmicrocompuler n. 38 - febbraio 1985
veniente avere una word che creasse auto-
maticamente una array.
Occorrerebbe avere una word, ad esem-
pio proprio ARRA Y o magari MATRICE
per dirla in italiano, che accetti due para-
metri. un valore ed un nome cd utilizzi
questi per aggiungere appunto una array al
dizionario. Per esempio
25 ARRAY SPESEDI NATALE
dovrebbe creare una schiera, anzi un vetto-
re di 50 byte dal nome SPESEDIN ATA-
LE. In Forth esiste una sequenza, costitui-
ta da due word. CREATE e DOES> (in
Fig Forth < BUILDSe DOES> )che con-
sente l'operazione ( tanto per intenderci co-
me il DIM del Basic). Usato da solo.
CREATE inserisce un nome nel diziona-
rio. senza però allocare spazio di memoria:
sarebbe come dire che crea una array inde-
terminata (in pratica funziona come VA-
RIABLE ma senza lo spazio dei due byte
successivi). Al contrario la combinazione
di CREATE e DOES > I in una definizio-
ne del tipo
: nome CREATE ... DOES> ...
crea una nuova struttura di determinato
nome. Facciamo un esempio; si voglia
creare una array di 24 numeri. Definiremo
inizialmente la word MATRICE che crea
appunto una array di dimensioni prestabi-
lite con un determinato nome. Definiremo
inizialmente
ARRAY
(definizione di una array avente spazio per
n numeri (n = TOS) usando la forma gene-
rale n ARRAY nome in aggiunte, la word
cerca l'indirizzo di un elemento inseren-
done il numero nello stack)
CREATE (inserisce il nome nel dizionario)
2 - ALLOT (effettua la relativa allocazione
di 2n byte)
DOES>
SWAP (scambia il numero degli elementi
e l'indirizzo di base)
2 •
+ . (indirizzo = n" elementi ■ 2 + indiriz-
: (fine definizione)
In questo modo la sequenza
25 ARRAY SPESEDINATALE
crea la nostra array c
1200 8 SPESEDINATALE ! OK (inizializza l'e-
lemento 8 è
valore 1200)
8 SPESEDINATALE ? 1200 OK (mostra il va-
lore contenuto
nell'elemento
8)
2 8 SPESEDINATALE + ! OK (aggiunge 2
all'elemento
8 )
8 SPESEDINATALE ? 1202 OK (mostra il nuo-
vo valore del-
l'elemento 8)
Un'ultima forma di array può essere
considerata una tabella. Questa è utilizzata
per sostituire operazioni che impiegano
lunghi periodi di tempo, come il calcolo dei
valori dei logaritmi od i seni e coseni di una
sequenza di angoli. Le tabelle sono molto
utili ed efficienti quando la funzione è limi-
tata ad un ridotto valore di argomenti, ed
elimina la necessità di calcoli ripetitivi ogni
volta che si ha bisogno della funzione, li
risvolto della medaglia è dato dalla grande
quantità di memoria utilizzata.
TABLE è una word che va cosi definita:
; TABLE (o TABELLA se si preferisce)
(la word crea una tabella in cui i
valori vanno aggiunti con la virgo-
la inoltre la ricerca del valore la si
ottiene con la sequenza n ' ele-
mento nome)
CREATE
DOES >
SWAP (scambia l'elemento e l'indirizzo di
base)
2 • (slitta di 2* n' elemento)
+ (il nuovo indirizzo = indirizzo di base +
slittamento)
in (ricerca il valore all'indirizzo)
Quale applicazione di quanto finora det-
to. Leo Scanlon presenta un suo program-
ma. in FORTH PROGRAMMINO, per
la ricerca dei valori del seno degli angoli
compresi tra 0 e 360 o già inseriti in una
tabella. Il procedimento utilizzato è estre-
mamente semplice e pulito ed è veramente
un gioiello di programmazione. Noi ne ri-
portiamo qui la sola definizione
: SIN
(fornisce il valore del seno di un angolo
compreso tra 0 e 360 gradi. Il risultato va
diviso per 10.000 per la ben nota assenza,
nel FORTH classico, dei numeri decimali)
(angolo — seno)
DUP 270 >
IF
360 SWAP - (per valori tra 271 e 360 il seno
= -seno (360-x))
SINE-TABLE NEGATE
ELSE
DUP 180 >
IF
180- (per valori tra 181 e 270 seno = - seno
(x - 180))
SINE - TABLE NEGATE
ELSE
DUP 90 >
IF
180 SWAP - (per valori tra 91 e 180)
(seno = -seno (180-x))
THEN
SINE-TABLE (tra 0 e 90, calcola)
THEN
THEN ;
La definizione va preceduta, una volta
per tutte, dalla creazione della tabella SI-
NE-TABLE, nel modo
TABLE SINE-TABLE
0. 175. 349, 523 (seni tra 0 e 3/10.000)
698. 872. 1045.
9986, 9994. 9998, 10000 (seni tra 87 e
90/10000)
Se state leggendo queste parole e non
avete pensato che c più semplice battere in
Basic PRINT SIN (30). beh potete anche
dire a vostra moglie che De Masi non vi
considera più programmatori della dome-
nica. Per chi. invece. Io è proprio della
domenica a mezzogiorno e non capisce
perché uno debba cosi avvelenarsi la vita,
provi a calcolare o cercare in una array già
inizializzata un certo valore in Basic, in
Fortran od in Pascal, e poi lo faccia in
FORTH ed il tutto lo si faccia 10 o 20.000
volte. Per valutare la differenza non serve
un cronometro, basta la cipolla del nonno.
Provare per credere. MC
nnmonin ,,,
Divisione Computers
IMPORT-EXPORT
COMPUTERS VIDEOGIOCHI ACCESSORI
NASTRI
CONEGUANO |TV| VIALE CARDUCCI 5
® 0438124918 - 32988 - 24374
VENDITA DIRETTA
SPEDIZIONE
IN TUTTA ITALIA
PREZZI IVA COMPRESA
COMMODORE
COMMODORE PLUS 4 L 790.000
Commodore 16 * Registratore
- intr Basic Inglese
Commodore 64 + Registratore ... teletonare
Commodore 64 Executive L i. 500,000
Floppy Driver 1541 L 500.000
Stampante MPS BOI L 425.000
Stampante MPS B02 L. 530.000
Stampante MPS B03 L 490.000
Stampante Piotler 15 20 L 320 000
Monitor 1 702 a colori L 530.000
SINCLAIR
SINCLAIR Ol
Speetrum 486 ' • 6 gioco./
intarlacela Uno
M.crodnvo • interfaccia Uno
• 4 cartucce con prog r
Monitor per OL
Cartucce per Micodnve
Stampante Seikosha QPSOiS
AMSTRAD CPC 464
con Monitor a colori ... teletonare
ACCESSORI
Penna ottica con programmi L 83 000
Tako incisore per diskettes L. 13 000
Interfaccia Sinclair per Joyst L. 30 000
Copritastiera per Commodore L 22 000
Diskettes 5" V.
-Nashua SF SD flOpz.) L. 33.000
-Nashua SF OD UOpz.) L, 38.000
■Nashua DF OD (lOpz.) L. 45.000
Dischetti colorati " Seminar
-SF DD HOpt ) L 45 000
IVA COMPRESA
CONDIZIONI DI VENDITA
teletonare
L 290000
Spese di spedizione fisse di L. 5.000
Garanzia 3 mesi dalla consegna
CONDIZIONI PARTICOLARI
Al RIVENDITORI
MCmicrocomputer n. 38 - febbraio 1985
93
COMPUTER MAGAZINE
CON UNA
CASSETTA
DI PROGRAMMI
' MSX
' PER CHI
COMINCIA
CORSO
DI MSX BASIC
PUNTATA
MSX SPRITE STORY
PHILIPS UNA MACCHINA TUTTA EUROPEA
[ jv : V
}
IL PRIMO ARCHIVIO ELETTRONICO
ISTRUZIONI: TUTTE LE EQUIVALENZE
4
di Maurizio Bergami
La grafica
Inizia con questo numero una nuova ru-
brica, dedicata al software MSX. Questa
sigla, come molti dei nostri lettori già sanno,
identifica uno standard hardware /software
proposto dalla Microsoft, e rivolto a I settore
dei computer, economici, a! quale hanno a-
derito numerosi costruttori giapponesi (e
uno americano, la Spectravideo ) .
Tutti i computer aderenti allo standard
sono fra loro perfettamente compatibili;
questo ci permetterà, quindi, di non fare
riferimento a nessun modello in particolare:
tutto quello che diremo sarà valido per qual-
siasi calcolatore MSX.
Nell'attesa di ricevere i vostri programmi
vogliamo iniziare a parlare dellu grafica di
questi computer, dato che la grafica è sicu-
ramente uno degli aspetti più affascinanti e.
perché no. divertenti delTutilizzo di un cal-
colatore domestico.
Lo standard MSX offre, da questo punto
di vista, delle caratteristiche eccellenti, ma
non sempre è facile diventare rapidamente
dei ...Giotto dello schermo, anche perché i
manuali forniti assieme alle macchine sono
spesso lacunosi ed un poco oscuri.
In queste pagine ci proponiamo quindi di
illustrare, nella maniera più chiara possibi-
le, come sia possibile disegnare facilmente
sul video sfruttando i numerosi comandi gra-
fici del Basic MSX.
Gli schermi grafici
Vediamo come è organizzato lo schermo
dei computer MSX. La prima cosa da no-
tare è che. in realtà, gli schermi sono quat-
tro e non uno: i primi due sono previsti per
il testo ed i secondi due. che sono quelli che
più ci interessano, per la grafica.
Ecco le loro caratteristiche:
Schermo 0 (testo): permette di visualiz-
zare 24 righe di 40 caratteri.
Schermo I (testo): permette di visualiz-
zare 24 linee di 32 caratteri.
Schermo 2 (grafica): questo schermo è
composto di 49 1 52 puntini (pixel), disposti
in una matrice di 256 pixel in orizzontale e
192 in verticale.
Schermo 3 (grafica): è simile allo scher-
mo precedente, ma è composto da un nu-
mero inferiore di pixel: 3072, disposti in
una matrice di 64x48.
Quando viene acceso, il computer sele-
ziona automaticamente lo schermo 0; per
attivarne un altro si usa il comando
SCREEN. seguito dal numero corrispon-
dente allo schermo desiderato.
Gli schermi grafici però possono essere
selezionati solo da programma: se si prova
a dare il comando SCREEN 2 (o SCREEN
3) in modo diretto sembra non accadere
nulla, a parte la momentanea sparizione di
qualsiasi scritta. Il computer infatti torna
subito allo schermo di testo precedente per
permettere al programmatore di scrivere
altri comandi. Questo succede anche quan-
do termina, o viene arrestata, l'esecuzione
di un programma: il calcolatore riattiva
automaticamente uno schermo di testo.
Prima di vedere come si disegna sugli
schermi grafici dobbiamo parlare dei colo-
ri. Il Basic MSX permette di utilizzare 16
colori, che vengono identificati con un nu-
mero da 0 a 15:
0 = trasparente: 1 = nero: 2 = verde: 3
= verde chiaro; 4 = blu scuro; 5 = azzur-
ro: 6 = rosso scuro; 7 = celeste: 8 = rosso;
9 = rosso chiaro: IO = giallo scuro: 11 =
giallo chiaro; 12 = verdescuro; 13 = ma-
genta: 14 = grigio: 15 = bianco
Il primo non è un colore nel vero senso
della parola; il suo effetto è proprio quello
di rendere la figura trasparente, il che per-
mette di riuscire a vedere le eventuali figure
alle quali essa è sovrapposta.
Il comando COLOR consente di sceglie-
re i tre colori di bordo, di sfondo e di primo
piano; per capire bene il significato di que-
sti tre termini si può paragonare lo scher-
mo ad un foglio di carta: il colore di fondo
corrisponde a quello della carta, il colore di
primo piano all'inchiostro usato ed il colo-
re di bordo è il colore della cornice del
foglio, sulla quale non è possibile scrivere.
Per lo schermo 0 il colore di bordo è
sempre uguale a quello di sfondo; negli
altri tre è invece possibile fissare i tre colori
in maniera indipendente:
Provate ad attivare lo schermo I con
SCREEN I e a dare il comando COLOR
15,12,14: il bordo diventerà grigio, lo sfon-
do verde e le scritte saranno in bianco,
come si poteva prevedere dall'elenco dei
colori sopra riportato.
Se si vuole cambiare uno solo dei tre
colori si può usare COLOR in forma sem-
plificata (attenzione alle virgole!):
COLOR x cambia il colore di primo
piano:
COLOR ,x cambia il colore di sfondo:
COLOR „ x cambia il colore di bordo;
naturalmente al posto di x va usato il nu-
mero che corrisponde al colore desiderato.
Come si disegna: PSET e PRESET
Torniamo ad occuparci dei due schermi
grafici. Come abbiamo detto, entrambi so-
no formali da una matrice di puntini.
Ogni pixel viene identificato da una cop-
pia di numeri, che corrispondono al nume-
ro di colonna ed al numero di riga della sua
posizione nella matrice; il numero di co-
lonna viene detto coordinata X e quello di
riga coordinata Y del pixel.
Una cosa da tener ben presente è che la
numerazione delle righe e delle colonne
non parte dal numero I. ma da 0; nella
figura I viene mostrato l'angolo in alto a
sinistra della matrice dello schermo 2, con
il pixel di coordinate (6,8) annerito.
Per quanto abbiamo detto risulta evi-
dente che le 256 colonne e le 192 righe della
matrice dello schermo 2 sono numerate
rispettivamente da 0 a 255 e da 0 a 191.
A questo punto verrebbe naturale pen-
sare che le 64 righe e le 48 colonne dello
schermo 3 siano numerate da 0 a 63 e da 0 a
47. Invece non è per niente cosi: la numera-
zione delle righe e delle colonne dello
schermo 3 è esattamente quella dello scher-
mo 2, e vada 0 a 255 c da 0 a 191.
Cerchiamo di capire come vanno le cose.
Se sovrapponessimo le matrici dei due
schermi ci renderemmo conto che una co-
lonna dello schermo 3 è composta da quat-
MCmicrocomputer n. 38 - febbraio 1985
95
Irò colonne dello schermo 2 (lo stesso di-
scorso vale anche per le righe): infatti 64 è
proprio uguale a 256/4.
Di conseguenza un pixel dello schermo 3
è composto da 16 pixel dello schermo 2: in
figura 2 la cosa è visibile relativamente al
primo pixel in alto a sinistra dello schermo
3. Come si vede esso é composto dai pixel
(0.0). (0.1). (0.2). (0.3). (1.0). (1.1). (1.2).
(1.3). (2.0). (2.1), (2.2). (2,3). (3.0). (3.1).
(3.2). (3.3) dello schermo 2.
Per indicare un pixel dello schermo 3 si
usa una qualsiasi delle coppie di coordina-
te dei pixel dello schermo 2 che lo compon-
gono. Il primo pixel in alto a sinistra dello
schermo 3 viene dunque identificato da
una delle 16 coppie di coordinate scritte
sopra.
Il sistema può sembrare complicato, ed
in effetti lo é. tuttavia presenta il vantaggio
che un programma scritto per lo schermo 2
può essere fatto girare con lo schermo 3
senza alcuna modifica.
È comunque possibile trovare una delle
coppie di coordinate dello schermo 2 corri-
spondenti ad un pixel dello schermo 3 in
modo molto semplice. Busta infatti pensa-
re lo schermo 3 proprio come una matrice
64 x 48 numerata da 0 a 63 e da 0 a 47 e poi
moltiplicare le coordinate, in questa matri-
ce. del pixel interessato per 4.
Facciamo un esempio: il puntino che.
sulla matrice dello schermo 3. si trova alla
decima colonna ed alla 4“ riga, cioè alle
coordinate (9,3), sarà identificato dalle
coordinate (36.12).
Fino ad ora abbiamo parlato della strut-
tura degli schermi grafici, senza occuparci
di come sia possibile disegnare su di essi.
La cosa è semplice: per far apparire delle
figure basta immaginarle composte da
puntini ed "accendere" sullo schermo i pi-
xel corrispondenti. Per accendere un pixel
in pratica lo si colora con una delle 16 tinte
a disposizione.
Vi sono due comandi che permettono di
colorare un pixel: PSET e PRESET.
Per accendere il pixel di coordinate
(X.Y ) si può usare quindi PSET (X.Y). C o
PRESET (X.Y). C. dove C è il numero
corrispondente al colore scelto.
Sembrerebbe che PSET e PRESET sia-
no assolutamente identici, invece fra loro
esiste una profonda differenza. Infatti, se
non viene specificato C. cioè il colore.
PSET colora il pixel con il colore di primo
piano specificato nell'ultimo comando
COLOR, mentre PRESET adopera il co-
lore di sfondo. Questo significa che. in as-
senza del parametro C. il pixel acceso da
PSET sarà visibile, mentre quello acceso
da PRESET sarà invisibile.
In pratica PRESET viene usalo soprat-
tutto per questo, cioè per rendere invisibile
un pixel precedentemente coloralo.
Provate a far girare questo programma.
10 COLOR 15,12,12
20 SCREEN 3
30 PSET (130.190)
40 FOR I = 1TO500 NEXT
MCmicrocomputer n. 38 - febbraio 1985
50 PRESET (130,90)
60 FOR 1= 1TO500:NEXT
70 GOTO 30
a questo punto dovreste essere perfetta-
mente in grado di comprendere che cosa
fa: la linea IO sceglie il colore verde per lo
sfondo ed il bordo, ed il colore bianco per il
primo piano: la linea 30 accende il pixel
(130,90) e la 50 lo colora come il fondo,
cioè lo spegne. In pratica si vede un punti-
no lampeggiare al centro dello schermo.
Vi è un altro modo di usare PSET (c
PRESET), ed è questo: PSET STEP (X.Y ).
C (C può essere omesso). In questo modo,
le coordinate specificate non sono più as-
solute, ma relative all'ultimo punto acceso
(se ancora non è stato acceso alcun pixel si
assume come ultimo acceso quello di coor-
dinate 0,0).
Cerchiamo di capire meglio: PSET
(10.5) vuole dire "accendi il pixel di coordi-
nate (10.5)”. mentre PSET STEP (10,10)
significa “accendi il pixel che si trova alle
coordinate (A+ 10.B + 5)" dove A e B so-
no le coordinate deH'ultimo pixel acceso.
Usando STEP le coordinate del nuovo pi-
xel vengono calcolate sommando (algebri-
camente) i numeri specificati alle coordina-
te del vecchio pixel; in questo caso è quindi
possibile specificare anche X e Y negativi,
che normalmente non avrebbero senso.
Provate a far girare questi due program-
mi per rendervi meglio conto di come fun-
zioni PSET in unione a STEP.
10 COLOR 15,6,6
20 SCREEN 3
30 PSET (130.90)
40 PSET (8,0), 1
50 GOTO 50
10 COLOR 15,6,6
20 SCREEN 3
30 PSET (130.90)
40 PSET STEP (8.0). 1
50 GOTO 50
le due linee 50 GOTO 50 servono per crea-
re un loop infinito ed evitare che il compu-
ter. tornando in modo testo, cancelli lo
schermo. Per uscire dal loop basta premere
CTRL STOP. Abbiamo visto che usando
PSET e PRESET si può specificare il colo-
re del pixel da accendere. Purtroppo lo
schermo 2 presenta una limitazione nell'u-
so del colore. Ogni riga della matrice di cui
abbiamo parlato può essere vista come una
successione di 64 blocchi composti da 8
pixel consecutivi; per ognuno di questi due
blocchi possono essere usati soltanto due
colori, uno di sfondo ed uno di primo pia-
no. Se. con due PSET consecutivi, si tenta
di colorare con colori diversi due pixel ap-
partenenti allo stesso blocco, il secondo
PSET cambierà anche il colore del puntino
già acceso. I listati I e 2 sono due esempi
coreografici dell'uso di PSET; come si vede
i due programmi sono identici, varia solo
la selezione dello schermo grafico, in ac-
software
cordo a quanto detto parlando delle coor-
dinate di schermo.
Come abbiamo già specificato, per dise-
gnare una figura qualsiasi bisogna imma-
ginarla formata da tanti puntini ed accen-
dere sullo schermo i pixel corrispondenti.
Vediamo ad esempio come si fa a trac-
ciare un segmento orizzontale a partire
dalla coordinata (50,50) e lungo 20 pixel
(sullo schermo 2). Si può usare una serie di
20 PSET del tipo:
PSET (50,50)
PSET (51,50)
PSET (50,52)
oppure, più comodamente, un ciclo FOR
NEXT;
FOR l = 0TO19
PSET (50+1,50)
NEXT
Entrambe le soluzioni sono abbastanza
scomode: fortunatamente il Basic MSX
possiede un'istruzione che permette di
tracciare comodamente qualsiasi tipo di
linea (ed anche qualcosa in più).
Il comando LINE
L'istruzione in questione è LINE, che
nella sua forma più semplice si usa cosi:
LINE (X1,Y1)-(X2.Y2),C
XI e Yl sono le coordinate del punto di
partenza. X2 e Y2 quelle del punto di arri-
vo e C il colore: omettendolo la linea verrà
tracciata nel colore di primo piano.
Per tornare all'esempio precedente ba-
sta dunque fare:
LINE (50,50)-(69.50)
Come per PSET. anche per LINE le coor-
dinate sono interpretate relativamente alla
posizione dell'ultimo punto acceso (che
può benissimo essere l'ultimo punto di una
linea ottenuta con LINE) se viene usato
STEP. Si noti che è necessario specificare
STEP per entrambe le coppie di coordina-
te. se si desidera che tutte e due vengano
considerate relative e non assolute.
Ecco tre brevi esempi:
10 COLOR 15.5.5
20 SCREEN 2
30 LINE (50, 50)-( 150.50)
40 GOTO 40
MCmicrocomputer n. 38 - lebbraio 1985
97
software
10 COLOR 15.5,5
20 SCREEN 2
30 PRESET (0.50)
40 LINE STEP (50,50)-STEP (150.0)
50 GOTO 50
10 COLOR 15,5.5
20 SCREEN 2
30 PRESET (0.50)
40 LINE STEP (50.50)-( 150,50)
50 GOTO 50
Quella vista è la l'orma semplificata di
LINE; esiste anche una forma estesa che
consente il tracciamento sia di linee che di
rettangoli:
LINE (X1,Y1)-(X2,Y2),C.B
la lettera B (che non rappresenta un nume-
ro). indica al cacolatore che. al posto di
una linea, va disegnato un rettangolo la cui
diagonale è la linea che parte dalle coordi-
nate (XI.YI) e termina alle coordinate
(X2.Y2).
nate (X.Y). con il raggio lungo R pixel
(intesi come pixel dello schermo 2) e di
colore C.
Ecco un primo esempio;
10 COLOR 1,14.14
20 SCREEN 2
30 CIRCLE (130.90), 50
40 GOTO 40
questo programma disegna un cerchio con
centro alle coordinate (130.90) e con rag-
gio lungo 50 pixel. Dal momento che C é
stato omesso, viene utilizzato il colore di
primo piano, che la linea 1 0 fissa a I (nero).
Dando il RUN si vede che il cerchio in
realtà è un'ellisse: questo è dovuto alle di-
mensioni dei pixel, che non sono quadrati,
ma marcatamente rettangolari.
Per avere dei cerchi "veri", ma anche per
tracciare ellissi di tutti i tipi, occorre usare
CIRCLE in quesfaltra forma (attenzione
alle tre virgole tra C e E):
CIRCLE (X.Y),R.C.„E
Con lo schermo 2, CI e C2 devono ob-
bligatoriamente essere uguali, mentre con
lo schermo 3 devono essere diversi.
Usando PAINT bisogna verificare con
attenzione che la figura da riempire risulti
effettivamente chiusa: basta infatti un "bu-
co" sul bordo, anche di un solo pixel, per-
ché PAINT colori anche esternamente.
Passiamo finalmente alla forma comple-
ta di CIRCLE:
CIRCLE (X,Y),R,C,A1,A2,E
in questa forma viene tracciato un arco
dell'ellisse che si otterrebbe non specifican-
do A I e A2, arco che parte dall'angolo A I
e termina all'angolo A2 (figura 5).
Sia Al che A2 vanno indicati in radianti:
visto che molti si trovano meglio con i
gradi ecco la formula di conversione:
angolo in radianti = angolo in gradi x
6.28/360
Qualche problema può sorgere cercan-
do di tracciare un arco che parta prima
Aggiungendo la lettera F dopo la B il
rettangolo verrà automaticamente riempi-
to con il colore C.
I due programmi RETTANGOLI I e
RETTANGOLI 2 (listato 3 e listato 4)
tracciano una serie di rettangoli rispettiva-
mente vuoti c pieni e servono come esem-
pio dell'uso esteso di LINE.
II programma LINE (listato 4), invece,
permette di vedere cosa succede aggiun-
gendo al comando prima B e poi BF.
Il comando CIRCLE
Oltre a segmenti e rettangoli il Basit-
ivi SX prevede la possibilità di tracciare cer-
chi. ellissi ed archi con un solo comando:
CIRCLE.
Anche questa istruzione, come la prece-
dente. ha una forma semplificata ed una
estesa. Vediamo prima quella semplificata:
CIRCLE (X.Y).R.C
disegna un cerchio con centri nelle coordi-
E indica il rapporto tra il raggio orizzon-
tale e quello verticale dell'ellisse: se è mag-
giore di I l'ellisse apparirà come in figura 3.
altrimenti come in figura 4.
Modificate la linea 30 del programma
precedente in:
30 CIRCLE (130,90), 50..., 1.25
e provate a dare nuovamente RUN (le vir-
gole consecutive in questo caso sono quat-
tro dato che è stato omesso C).
Abbiamo visto che LINE permette il
riempimento automatico dei rettangoli di-
segnati: con CIRCLE la cosa non è possi-
bile e bisogna ricorrere al comando
PAINT, che serve appunto per colorare
delle aree sullo schermo.
PAINT si usa cosi:
PAINT (X.Y),C1,C2
(X.Y) sono le coordinate di un punto qual-
siasi interno alla zona da colorare: CI rap-
presenta il colore che si vuole utilizzare e
C2 indica il colore col quale è stata traccia-
ta la figura che si vuole riempire.
dell'origine e termini dopo: la figura 6 do-
vrebbe aiutare a chiarire le idee.
Il programma ARCHI (listato 7) con-
sente di fare pratica col tracciamento di
archi: gli angoli di partenza e di arrivo
vanno indicati in gradi e la conversione
viene effettuata automaticamente.
Analogamente a PSET e LINE, anche in
CIRCLE e PAINT si può specificare
STEP prima di indicare le coordinate, che
in questo caso verranno interpretate come
abbiamo visto in precedenza.
Per questo mese abbiamo finito; abbia-
mo visto come è organizzato lo schermo
dei computer MSX dal punto di vista grafi-
co ed abbiamo esaminato alcuni comandi
molto potenti, ma rimane ancora molto da
dire.
Nelle prossime puntate ci occuperemo
del comando DRA W e delle famose sprite.
Nel frattempo, ripetiamo, se avete rea-
lizzato dei bei programmi in Basic MSX
inviateceli. MC
MCmicrocomputer n. 38 - febbraio 1985
E' UN MARCHIO INFOTEL
OGGI
AL COMPLETO SERVIZIO DEI RIVENDITORI
agente esclusivo per il Lazio:
_ITALIA_
(M33GD
o personal computer a 16 bit APRICOT, VICTOR
o floppy MAXELL
o stampanti ad aghi MITSUI
ostampanti lowcost CP/JP-80
o stampanti a margherita JUKI
o accoppiatori acustici NOVATION CAT,
ANDERSON- JACOBSON
oplotter YEW, ENTER C
odigitizer GTCO
omouse MOUSE SYSTEM
agente esclusivo per Lazio e Umbria:
osoftware J.sofl , MICROSOFT, HABADEX,
FILEVISION...
£ . B GRUPPO
i»cISon LI ' l'bri della casa editrice
INFO • Roma - via Flavio Domiziano, 10 - tei. 06.51 26700/51 38023/51 27381
Le basi del
Data Base
Data Base Management System: il modello relazionale dei dati
Il mese scorso dicemmo che la IBM non appoggiò lo sviluppo dei sistemi di basi di dati di tipo reticolare. Uno dei
motivi fu perché proprio in quel periodo un loro ricercatore. E.F. Codd, stava per gettare le basi di un nuovo
modello dei dati che avrebbe fatto parlare il mondo per la sua potenzialità unita a una semplicità d'uso da far
spavento: nacquero così i sistemi relazionali...
di Andrea de Prisco
Sesta parte
I sistemi relazionali
Codd, a dire il vero, parlava a esperti: a
gente che da più tempo aveva avuto a che
fare coi sistemi gerarchici propri di quel
periodo. Gente che anni prima militava
nelle file del Cobol e linguaggi analoghi per
archiviazione.
I sistemi relazionali, come dice il nome
stesso, basano tutta la loro essenza sul con-
cetto di relazione. Questa, per parlare in
maniera abbastanza spicciola, può essere
assimilata a una tabella, nel senso che tutti
voi intendete. Una tabella ( = relazione) è
formata da tante colonne e tante righe:
assumeremo la tabulazione in senso verti-
cale. in altre parole le varie righe saranno le
registrazioni, opportunamente incolonna-
te secondo i vari campi. Se ancora non è
troppo chiaro é solo perché non state pen-
sando a una qualsiasi tabella. In queste
pagine, le figure 3. ..8 rappresentano tutte
delle tabelle. Ripetiamo: nel senso comu-
Sono dette "Relazioni" solo perché, in
definitiva, tutti gli elementi di una tabella
sono tra loro in relazione. Anche questo è
un concetto del tutto generale, ossia vero
anche in campi ben lontani dall'Informati-
ca. Sono in relazione essendo tutti dello
stesso tipo. Se tabuliamo qualcosa, è per-
ché i vari oggetti tabulati hanno tutti, ad
esempio, nella prima colonna un Nome,
nella seconda un Indirizzo, nella terza un
N. telefonico ccc.
Provate a tabulare una persona, un libro
e un'auto: a meno di salti mortali, a nostro
avviso non è possibile: sono tre oggetti non
in relazione tra loro. Una persona avrà un
nome, un recapito, un n. telefonico; un
libro avrà un titolo, un autore e una casa
editrice: infine un'auto avrà una marca, un
modello e una data di fabbricazione.
Non bisogna però fare confusione col
concetto di correlazione, visto nei numeri
scorsi. La correlazione indica legame tra
oggetti diversi, quasi a voler sottolineare
l'appartenenza a relazioni diverse. Fermia-
moci comunque qui. non serve fare altre
precisazioni.
La potenzialità dei sistemi relazionali
sta nella possibilità di manipolare tabelle
come fossero normalissime variabili. Nulla
di strano è sommare due tabelle, fare la
differenza o il prodotto, come vedremo in
seguito. Generarne nuove da tabelle già
esistenti e cosi via.
Una base di dati di tipo relazionale farà
appunto uso di relazioni (ricordiamo che è
esattamente la stessa cosa di tabelle) sia per
memorizzare informazioni sia per eseguire
operazioni. Avremo certamente una tabel-
la per ogni classe usata, ma non faremo
mai espliciti riferimenti a correlazione tra
dati. Avremo ad esempio (tanto per cam-
biare rispolveriamo la nostra amata biblio-
teca) una tabella con degli utenti, una ta-
bella contenente tutti i libri prestati. Agen-
do opportunamente sulle due tabelle, con
opportuni operatori, potremo ottenere
nuova informazione a partire da quella di
base. Ad esempio la stampa dei nomi e
numeri telefonici di tutti gli utenti che han-
no in prestilo libri di Luca Goldoni, non
abitanti a Roma.
Vedremo come sia (facilmente) possibile
ciò dopo aver introdotto un concetto mol-
to importante, alla base di tutto il menage
relazionale.
(I prodotto cartesiano
È opinione diffusa, tenetevi forte, che
3 x 3 é uguale a 9. Ad esempio (non si sta
facendo dell'ironia) se tre bimbi desidera-
no tre caramelle l'uno, la mamma dovrà
comprarne 9. Questo è un modo di vedere
l'operazione di prodotto tra numeri. Un
altro modo di moltiplicare riguarda, sem-
pre ad esempio, il calcolo dell'area di un
rettangolo. Se la memoria non inganna,
area uguale base x altezza.
Qualcuno si chiederà dove é la diversità
di operazione tra i due esempi portati. La
differenza è nel tipo di parametri passati
alla funzione moltiplicatrice e al tipo di
risultato ottenuto. Tre volte tre caramelle
fa nove caramelle; 4 metri per 5 metri fa 20
metri quadrati, che è una cosa ben diversa
da un metro e basta (o da una caramella!).
Possiamo estendere il concetto di moltipli-
cazione anche a qualcosa di diverso da
caramelle, numeri o metri. Moltiplichiamo
ad esempio due insiemi: il primo composto
da tutte le lettere dell'alfabeto comprese
tra la A e la C; il secondo composto da tutti
i numeri interi compresi tra 0 e 2. Il prodot-
to (detto cartesiano) tra due insiemi finiti è
definito come un nuovo insieme formato
da tutte le possibili coppie del tipo (elemen-
to del primo insieme, elemento del secondo
insieme). Il primo insieme è dunque:
[A.B.C.]
il secondo è
(0.1.2)
il prodotto dei due sarà la sequenza di
coppie;
(A.0)
(B.0)
(B.1)
(B.2)
(C.0)
(C.1)
(C.2)
In figura I é mostrato il prodotto carte-
A
<A,0>
( A , 1 )
( A ,2 )
8
(B,0>
( 8 , 1 )
(B ,2 )
C
<C,0>
<C, 1 )
<C ,2 >
0
1
2
siano dei due insiemi: ogni casella, sul tipo
della battaglia navale, ha come coordinate
la lettera corrispondente nella sua riga e il
numero della colonna in cui si trova. In
figura 2 è mostrato il prodotto cartesiano
dei due insiemi (Mario. Nino, Ugo] e [San-
dra. Paola. Chiara], Posto che i sei amici
decideranno un giorno di andare in disco-
teca. il prodotto cartesiano rappresenta
tutte le possibili ( = lecite) coppie per i balli
lenti.
100
MCmicrocomputer n, 38 - febbraio 1985
Mario
Mar io , Sandra
Mar io ,Pao 1 a
Mar io ,Ch iar a
Nino
Nino , Sandra
Nino , Paola
Nino «Chiara
Ugo
Ugo , Sandra
Ugo ,Paola
Ugo /Chiara
Sandra
Paola
Ch iara
Il discorso si fa del tutto analogo, par-
lando di basi di dati, di relazioni e prodotto
tra tabelle. Come vedremo, moltiplicare
una tabella per un'altra significa accoppia-
re a ogni elemento della prima tabella, uno
per uno. tutti gli elementi della seconda
tabella.
Gli operatori relazionali
...sono manipolatori di tabelle. Come
dicevamo prima, è possibile compiere de-
terminate operazioni per ottenere da tabel-
le date, nuove relazioni. L'operazione più
semplice è la somma: non fa altro che sal-
dare, l'una di seguito all'altra, due tabelle
date, costruendone una terza. S'intende
che le due tabelle saranno dello stesso tipo:
avranno ciascuna gli stessi campi, o uguali
nomi per le varie colonne se preferite.
Se ad esempio abbiamo una tabella A
contenente un certo numero di utenti, e
una tabella B contenente un'altra quantità
di utenti, la somma di queste costruirà una
tabella C contenente sia gli elementi di A
che quelli di B. In figura 3 è mostrata un'o-
perazione di somma.
Noma Cognome Talafono
Carlo (Manna 1 (3449665
Luca (Tarli (5765493
Nicola Ifllllmandi 15343335
Fabio IGrattaschi 16784531
M I NUS
Carlo I Manna! 13445665
Fabio (Grattaseli i (8784531
Figura 4 - Sottrazione tra due relazioni.
Tabella 1
Nicola Irti 1 imandl (5343235
Fabio (Grattaseli i (8784531
Carlo I Manna! 13445665
Luca (Tari! 15765453
Nicola (ftlllmandi (S343235
Fabio (Grattaseli I 18784531
La differenza tra due tabelle è l'insieme
delle registrazioni contenute nella prima,
non contenute nella seconda. La figura 4
mostra quanto appena detto.
Figura 6 - Selezioniamo i soli medici.
In figura 5 è mostrata una tabella di
professionisti. Prima di mostrare il prodot-
to fra tabelle, vediamo due operatori per
costruire nuove tabelle a partire da una
sola tabella data. Questi sono i classici SE-
LECT e PROJECT, il primo seleziona al-
cuni elementi, l'altro alcuni campi. Per se-
lezionare elementi da una relazione, é ne-
cessario indicare una condizione da supe-
rare per appartenere alla nuova tabella. Se
scriviamo qualcosa del tipo:
Tabella2 = SELECT Tabellal with Profes-
sione = Medico
vogliamo in Tabella2 tutti i Medici di Ta-
bellal. In figura 6 vediamo la Tabella2
dopo il SELECT.
Per eliminare alcune colonne si usa l'o-
peratore PROJECT, seguito dalla tabella
sorgente e dalla lista dei campi da conser-
vare. In figura 7 abbiamo "proiettato” Ta-
bella2 sui soli campi Nome e Città. Avre-
mo scritto qualcosa del tipo:
Tabella3 = PROJECT Tabella2 on Nome.
Città
E veniamo ai prodotti tra tabelle. Come
qualcuno avrà già subdorato l’utilità di
Nome Citta 1
Rossi
Roma
Net-t i
Milano
Tabella prestili
Figura 9 - Tabella dei materiali in prestito.
moltiplicare tra loro due tabelle non è mol-
to evidente. Molto meglio è fare prodotti
sotto condizione: inutile sviluppare tabelle
enormi se poi gli elementi che a noi interes-
sano sono solo un piccolissimo sottoinsie-
me. Per fare un esempio, diamo uno sguar-
do alle figure 8 e 9. La prima è una tabella
di Utenti di una biblioteca, la seconda la
tabella dei vari Libri in prestito. Moltipli-
cheremo queste due tabelle, restringendo il
prodotto ai soli accoppiamenti con campo
PrestatoA (di TabellaPrestiti) uguale al
campo Nome (di TabellaUtenti). L'opera-
tore si chiama JOIN (trad. congiungere);
scriveremo qualcosa del tipo:
Tabella = TabellaPrestiti JOIN TabellaU-
tenti with PrestatoA = Nome
otterremo cosi quanto mostrato in figura
10: una tabella completa dei libri prestati
con relativo indirizzo e telefono dell'Uten-
MCmlcrocomputer n. 38 - febbraio 1985
101
Figura II) ■ Prodotto tra tabella pres,
te che ha in prestito il testo indicato all'ini-
zio di ogni riga.
Tutti gli operatori visti finora permetto-
no anche operazioni più semplici e intuiti-
ve. Considerato che una tabella può essere
formata da una sola riga (un solo elemen-
to). adopereremo l'operatore di somma
per aggiungere, ad esempio, nuovi utenti
alla biblioteca; useremo l’operatore di dif-
ferenza per togliere, sempre ad esempio, un
elemento da TabellaPrestito essendo stato
riconsegnato un libro.
Le operazioni di SELECT, PROJECT e
JOIN si useranno anche per recuperare un
elemento. Torniamo alle figure 8 e 9, se
vogliamo il numero di telefono dell'utente
che ha in prestilo il Decamerone, compire-
mo i seguenti passi:
UnLibro = SELECT TabellaPrestiti with Ti-
tolo = Decamerone
ci permetterà di accedere al testo interessa-
to: UnLibro è una tabella composta da un
solo elemento, esistendo un solo testo in
TabellaPrestiti con Titolo = Decamerone.
La successiva operazione sarà:
UnaRiga = UnLibro JOIN TabellaUtenti
with PrestatoA = Nome
con la quale otterremo di fatto un'altra
tabella formata da una sola riga, precisa-
mente la seconda della relazione di figura
IO. Infine con:
Telefono = PROJECT UnaRiga on Telefono
avremo una tabella (ammesso che si possa
ancora chiamare tale) formata da un solo
elemento e un solo campo.
PRINT Telefono
restituirà:
421227
che è il numero che cercavamo.
Per finire, risolviamo il problema posto
all'inizio dell'articolo ossia la stampa dei
nomi e numeri telefonici di tutti gli Utenti
che hanno in prestito libri di Luca Goldo-
ni. non abitanti a Roma.
Per questioni di spazio non visualizzere-
mo la situazione con opportune figure, ma
faremo un ragionamento verbale.
Supponiamo che la tabella degli utenti
abbia i seguenti campi: Nome, Indirizzo.
Città, Telefono. La tabella dei materiali
prestati i campi: Titolo, Autore. Presta-
toA. DataConsegna. PrestatoA. come nel-
l'esempio precedente, è il nome dell'utente
che ha in prestito il testo.
U basi del nato Base
La prima operazione da compiere è una
selezione tra tutti i testi, di quelli con auto-
re = Goldoni. Scriveremo:
LlbrlGoldoni = SELECTTabellaPrestiti with
Autore = Goldoni
Seguirà un JOIN con gli utenti, con con-
dizione PrestatoA = Nome:
Prestiti = LibriGoldoni JOIN TabellaUtenti
with PrestatoA = Nome
Abbiamo la tabella completa (con tutti i
campi) di tutti gli utenti che hanno in pre-
stito opere goldoniane. Restano due ope-
razioni:
PrestitiNonRomani = SELECT Prestiti with
Città ^Roma
per togliere le righe con Città ^ Roma e
infine:
UtentieTelefoni = PROJECT PrestitiNonRo-
Nome, Telefono
Possiamo ora stampare la tabella cerca-
ta:
PRINT UtentieTelefoni
Alcune precisazioni
Quanto mostrato finora rappresenta il
"facile" dei Data Base Relazionali. Codd,
l'inventore lo definisce minimo criterio di
reiazionabilità: dati in forma tabellare e
operatori SELECT, PROJECT e JOIN.
La teoria di questi Data Base è andata
molto oltre: si parla di domini, calcolo re-
lazionale di ennuple, calcolo relazionale di
domini, dipendenze funzionali, forme nor-
mali e altro. Il tutto per l'integrità dei dati e
una buona suddivisione in Tabelle per mi-
nimizzare la ridondanza di dati.
In questa sede non ci siamo occupati del
difficile: sarebbe risultato un discorso o
troppo lungo (qualche decina di pagine
fitte-fitle) o dedicato a esperti del settore.
Si è voluto mostrare semplicemente il
modello dei dati e come si manipolano le
relazioni per sfruttare appieno l'informa-
zione di cui si dispone. Ricapitolando: una
base di dati relazionale è un insieme di
tabelle, corrispondenti alle classi viste pre-
cedentemente. Nessun esplicito riferimen-
to è fatto per correlare dati di tabelle diver-
se. La correlazione avviene costruendo,
tramite opportuni operatori, nuove tabel-
le. Il meccanismo è detto delle chiavi ester-
ne. In generale una chiave è un attributo
che identifica univocamente un'ennupla
(es.: la matricola di uno studente). La chia-
ve si dice esterna se identifica univocamen-
te un elemento di un'altra tabella. In figura
9, i nomi presenti nella colonna PrestatoA
sono chiavi esterne per TabellaUtenti: o-
gnuno identifica un elemento.
Per fare il JOIN tra due relazioni è neces-
sario che ogni chiave esterna esista nella
tabella corrispondente come chiave. Il
JOIN mostralo in figura 10 sarebbe fallito
se, ad esempio, l'utente Pallisi non risultas-
se in TabellaUtenti.
Ed era giusto: se un utente chiede in
prestito un libro, oltre a inserire la sua
richiesta in TabellaPrestiti, si deve garanti-
re che l’utente sia anche in TabellaUtenti.
Ospite o a sé stante?
Cosa vorrà mai dire il titolo di questo riquadro?
Un'altra delle stranezze dei sistemi di gestione per basi di dati, qualcuno penserà! Forse.
Termina con questo numero la nostra piccola rassegna sui modelli di dato dei Data Base.
Abbiamo visto il modello semantico dei dati, quello gerarchico, il reticolare e questo mese il
relazionale.
Prima di passare ai sistemi commerciali per microcomputer, è d'uopo un'importante precisa-
zione. Più volte é stato detto che un sistema per Basi di Dati è (praticamente) un linguaggio di
programmazione particolarmente orientato al trattamento di moli enormi di dati. Nelle prime
puntate abbiamo anche parlato del Basic-micatanlo. inventato di sana pianta, per mostrare
come sia possibile definire una base di dati e operare su essa per manipolare dati. Come il Basic-
micatanto. anche i linguaggi commerciali dividono l'intero set di istruzioni in due categorie:
istruzioni per la definizione della Base di Dati (le varie classi o le varie relazioni adoperate) c
istruzioni per modellare la conoscenza procedurale ossia per scrivere gli opportuni programmi
applicativi, ad esempio stampa di tabulati o ricerca e modifica di elementi che soddisfano
particolari condizioni.
A monte di tutto ciò. i linguaggi per il trattamento di Basi di Dati possono essere ospiti (di un
linguaggio conosciuto) o a sé stanti. Un linguaggio a sé stante dispone di tutte le strutture proprie
della programmazione, in altre parole è un linguaggio completo. I linguaggi ospite, invece, sono
un insieme di istruzioni specifiche per il trattamento di Basi di Dati, immerse in un linguaggio
standard che. normalmente, non dispone di tali meccanismi. Possiamo vedere il Basic-micatanto
come un linguaggio ospite dell'arcinoto Basic. Molti dei costrutti sono essenzialmente Basic e
basta.
Pregi e difetti delle due possibilità non è facile elencarli. A titolo indicativo possiamo dire che
un linguaggio ospite ha generalmente operatori molto potenti, non dovendo fornire anche le
relative strutture di controllo già presenti nel linguaggio che lo ospita. Se però questo ha strutture
proprie non troppo potenti, il risultato finale può essere poco allettante. I linguaggi a sé stanti, di
contro, non avendo a che fare con strutture di controllo esterne, non soffrono mali di adattabilità
ma, dovendo fornire sia strutture di controllo che strutture per la definizione e la manipolazione
di dati, difficilmente brillano in tutte le dimensioni.
102
MCmicrocomputer n. 38 - febbraio 1985
ULTIMISSIME TELEXl PER SUSY Zi TOUCH PRO UITH JOYSTICK Ut. ISO. 700. • DISKETTE STORAGE (CAPACITY 1 1 0OPCS) UT. 22. 800. • JOHN
BELL A/D CARO 166.000 • REPLAY ][ CARO 146.500 • PROPI WRITER 513.000 • 8748/49 PIPU PROGRAMER 415.000 • NEW EPROM MRITER 136.700 •
IMAGE PROCESS CARO 605.600 • SUPER PARALLEL CARO 327.000 • TELEFAX CARO 537.000 • PORTABLE PC(N/2 DRIVES , 1PI0NIT0R 3.700.000 •
di Pierluigi Panun/i
Quinta parte
La scarsa pianala abbiamo analizzato le
possibilità Mio Z80 di effettuare operazioni
aritmetiche e logiche tra due operandi dei
quali in genere uno è l 'accumulatore e l 'altro
è un registro o il contenuto di una locazione
di memoria, indicata esplicitamente oppure
indirettamente tramite i registri indice IX ed
IY o la coppia HL.
Questa volta ci occuperemo delle istruzio-
ni logiche di rotazione e di sliift ( in breve,
istruzioni di "slcew" ) e delle istruzioni di
manipolazione dei singoli bit.
In tutto quanto segue ricordiamo, soprat-
tutto ai meno esperti, che parleremo di byte
formati da 8 bit; tali bit saranno indicati in
modo tale da identificarne immediatamente
la posizione nell'ambito del byte: il bit meno
significativo I quello più a destra, tanta per
intenderci ) sarà indifferentemente indicato
con “LSB" f Least Significarli Bit I o con
"hit 1} ", il successivo I proseguendo verso
sinistra) sarà chiamato "hit I" e cosi via fino
all'ottavo bit posto più a sinistra e chiamalo
indifferentemente con "MSB" I Mosi Signi-
ficarli Bit) o "bit 7".
Per evitare ulteriori confusioni ricordia-
mo clic nel coniare i bit si parte da 0 per
arrivare a 7 ... intesi ?!
Le istruzioni di rotazione
Le istruzioni in esame, dette generica-
mente in gergo le "rotate” (è inglese!), con-
sentono di effettuare un'operazione a pri-
ma vista insolita e apparentemente inutile
in quanto, abituati come siamo alla nota-
zione decimale, non vi troviamo un effetti-
vo riscontro.
Esse si dividono in "rotazione verso de-
stra" ed in "rotazioni verso sinistra", en-
trambe a loro volta suddivise a seconda se
"attraverso il bit di carry" oppure no.
Ma andiamo con ordine iniziando dalle
quattro istruzioni che si possono ottenere
con le condizioni di cui sopra e relative
all'accumulatore.
Analizziamo perciò l'istruzione RRA
che sta per "Rotate Righi Accumulator".
facendo riferimento alla figura la.
In particolare, come indicato schemati-
camente nella figura grazie all'uso delle
frecce, i singoli bit dell'accumulatore ven-
gono traslati di una posizione verso destra;
ciò potrebbe comportare la perdita del bit
meno significativo.
Invece tale bit viene “salvato" nel Carry:
inoltre, in questo caso, il posto lasciato
vuoto dal bit 7 nel suo spostamento verso
destra viene occupato dal valore "vecchio"
del Carry. che a sua volta viene cosi “salva-
to" dal momento che è stato rimpiazzato
precedentemente.
Attenzione: tutte queste "operazioni" di
spostamento avvengono "istantaneamen-
te" e cioè senza possibilità di errori.
L'analoga RLA ("Rotate Left Accumu-
lator"). come si può vedere nella figura Ib.
effettua una traslazione dei bit verso sini-
stra. portando il bit 7 nel Carry, ed il "vec-
chio" Carry al posto del "vecchio" bit I) .
rimasto vuoto.
Abbiamo dunque visto le due "rotate"
che lavorano "attraverso il Carry".
Viceversa esistono le analoghe che coin-
volgono differentemente il Carry: l'istru-
zione RRCA ("Rotate Righi Circular Ac-
cumulator"), come si vede in figura le. ef-
fettua una traslazione circolare dei bit del-
l'accumulatore verso destra ed in partico-
lare il bit 0 viene reinserito al posto vacan-
te lasciato dal "vecchio" bit 7 ed inoltre
viene memorizzato nel Carry.
Ecco la differenza fondamentale: in que-
sto caso il contenuto del Carry viene perso.
Analoghe considerazioni si possono ef-
fettuare per l'istruzione RLCA ("Rotate
Left Circular Accumulator"), per la quale
rimandiamo alla figura ld.
Abbiamo dunque visto quattro tipi fon-
damentali di "rotate": ne abbiamo parlato
all'inizio in quanto queste istruzioni erano
quelle già presenti (e le uniche del genere!)
nel set di istruzioni dell’8080, che è stato
notevolmente ampliato dai progettisti del-
la Zilog in fase di progettazione dello Z80.
In particolare sono state aggiunte tutte
le istruzioni di cui parleremo nel resto del-
l'articolo.
Ecco introdotte le generalizzazioni delle
quattro istruzioni viste finora, che si chia-
mano "RR r". "RL r". "RRC r"ed “RLC r".
104
MCmicrocomputer n. 38 - febbraio 1985
cioè rispettivamente "Rotate Righi".
"Rotate Left". "Rotate Right Circular" e
"Rotate Left Circular" e dove la "r" sottin-
tende un registro qualsiasi (B. C. D. E. H.
L. nonché lo stesso A) oppure una locazio-
ne di memoria indirizzata da HL nonché
indirettamente e con il meccanismo del
"displacement" tramite i registri indice IX
ed IY- In tutti questi casi il meccanismo é
assolutamente identico alle corrispondenti
istruzioni analizzate in precedenza.
Sono state aggiunte inoltre altre tre i-
struzioni di "shirt", relative ad un operan-
do "generalizzato" (come quello preceden-
te. tanto per non ripeterci).
In particolare esiste la funzione "SLA r”
(‘'Shifl Left Arithmetical") la quale, come
si può vedere dalla figura 2a, effettua una
traslazione dei bit verso sinistra “ aritmeti-
camente" e cioè riempiendo il posto prece-
dentemente occupato dal bit 0 con uno 0 e
"salvando" il "vecchio" bit 7 nel Carry, che
cosi viene distrutto.
Vi è poi la “SRA r” ("Shift Right Arith-
metical") che effettua, come si vede in figu-
ra 2b, una traslazione verso destra, salvan-
do il "vecchio" bit 0 nel Carry (che si
distrugge) e viceversa mantenendo il vec-
chio valore del bit 7 e cioè lasciando inalte-
rato il "segno" del byte: ciò è molto utile
per dividere ad esempio per due un numero
che può essere anche negativo.
Se questo comportamento non è deside-
rato. allora si può usare la "SRL r” ("Shift
Righi Logicai") che e differenza della pre-
cedente, come si può vedere in figura 2c,
imposta un valore 0 nel bit più significati-
vo dell'operando.
Facendo un po' di conti abbiamo, per
quanto riguarda le istruzioni "nuove" del-
lo Z80, quattro "Rotate" più tre "Shift",
ognuna relativa ad un operando a scelta
tra 10: in totale abbiamo la bellezza di 70
istruzioni in più rispetto al vecchio 8080, e
non finiscono certo qui...
Due "Rotate" un po' particolari
Facendo riferimento alla figura 3 vedia-
mo due altre istruzioni di "rotate", chia-
mate RLD e RRD (rispettivamente "Ro-
tate Left Digit" e "Rotate Right Digit”),
veramente inconsuete.
In particolare operano tra l'accumulato-
re e la locazione di memoria puntata dalla
coppia HL (chissà perchè questa scelta,
unica nel suo genere, da parte dei progetti-
sti) ed effettuano una traslazione rispetti-
vamente verso sinistra e verso destra del
"nibble meno significativo" dell'accumu-
latore e dei due "nibble" della locazione di
memoria già individuata.
Detto che ancora una volta tutte le ope-
razioni di traslazione avvengono contem-
poraneamente. queste due strane istruzio-
ni servono più che altro quando si ha a che
fare con numeri espressi in BCD. ma non ci
soffermeremo oltre sull'argomento.
Istruzioni di manipolazione
dei singoli bit
Sono queste delle istruzioni veramente
potenti ed interessanti, che ogni program-
matore desidererebbe vedere nel set di i-
struzioni del proprio microprocessore pre-
ferito, ma che invece anche nei “micro" a
16 bit è raro trovare.
In parole povere consentono di testare
10 stato di uno degli 8 bit di un operando,
come pure di setttare o resettare uno degli
8 bit.
In dettaglio abbiamo le “ istruzioni BIT
b. r" dove “b" può assumere a piacere un
valore tra 0 e 7 ed “r" è il solito "operando
generalizzato" che ormai conosciamo mol-
to bene.
Abbiamo parlato di "istruzioni BIT" in
quanto, facendo un po’ di conti, in questo
caso abbiamo come al solito 8 scelte (il
numero di bit) moltiplicate peri IO operan-
di: un totale di 80 istruzioni BIT
Per vedere il funzionamento di questa
funzione bisogna ragionare come segue: se
11 bit in esame è zero (resettato) allora il
"(lag di zero" è posto "correttamente" ad I.
come nei casi in cui, ad esempio, l’accumu-
latore è nullo.
In termini tecnici, indubbiamente molto
oscuri e che sottintendono quasi un sottile
gioco di parole, "il negato del bit in esame è
posto nel (lag di Zero": il gioco di parole
può nascere dal fatto che "se il bit è 0 . il
ilag di Zero è I" e viceversa "se il bit è I . il
flag di Zero è 0 ". Sembra buffo, ma basta
ragionarci un attimo per convincersi che in
realtà non potrebbe essere altrimenti, in
quanto l'operazione è strettamente logi-
Altre ottanta istruzioni provengono dal-
le "SET b, r" ed altre ottanta ancora dalle
"RES b. r" che rispettivamente pongono
ad "1" e a “0 " il bit "b" (specificato nell'i-
struzione) deH'“operando generalizzato"
E gli altri flag?
Abbiamo sinora visto il comportamento
del flag di Carry nelle "Rotate" e dello
"Zero" nelle BIT: per completezza indiche-
remo ora come si comportano gli altri bit
di flag, relativamente ai più importanti.
Le prime quattro "Rotate”, originarie
dell'8080, ovviamente influenzano il Car-
ry, mentre non alterano minimamente lo
"Zero" ed il "Sign", viceversa pongono a 0
il flag "N".
Invece le "rotate generalizzate" e le
"shift generalizzate" influenzano il "Car-
ry" (ovviamente!), lo "Zero" ed il “Sign" e
pongono al solito il flag "N" a zero.
Per quanto riguarda le "digit rotate",
queste si comportano come le precedenti
ad eccezione del flag di Carry che non vie-
ne minimamente sfioralo.
Dopo aver detto che le SET e RES non
alterano alcun flag di sorta, non rimango-
no che le BIT : come detto alterano il flag
“Zero", mentre non toccano il Carry, azze-
rano il flag "N". mentre infine lasciano
sconosciuto e perciò casuale lo stato del
flag di segno.
Con questo abbiamo terminato la rasse-
gna di queste istruzioni "bit oriented". del-
le quali lo Z80 può ben vantarsi nel para-
gone con gli altri microprocessori ad 8 bit.
quali il 6502 o il 6800. tanto per citare al
solito i più noti.
La prossima volta conosceremo altre
"perle" del ricchissimo set di istruzioni del-
lo Z80: i salti e le chiamate di subroutine,
anche queste nettamente superiori come
numero e qualità rispetto alla concorrenza .
MCmicrocomputer n. 38 - febbraio 1985
105
Algoritmi di ordinamento
E mollo probabile che chi ha comincialo
da poco a programmare un computer si tro-
verà. ira non mollo, alle prese con un insie-
me di elementi da ordinare in maniera pre-
si abilita. E proprio a questo tipo di problemi
che vogliamo introdurre il meno esperto pro-
ponendogli qualcuna delle consuete soluzio-
Ordinamento e algoritmi
Ci sono alcuni casi in cui una lista ordi-
nata semplifica notevolmente il nostro la-
voro. Ad esempio, avendo un insieme di
nomi, potremmo pensare di disporli in or-
dine alfabetico per avere un accesso più
rapido alla lista stessa: pensate infatti co-
me sarebbe scomodo consultare un elenco
telefonico con i nomi sistemati alla rinfusa!
Ecco un primo caso in cui un algoritmo di
ordinamento ci ritorna utile. L'insieme in
questione potrebbe essere numerico: ad e-
sempio in matematica, quando si ha a che
fare con vettori o matrici per la risoluzione
di qualche particolare problema, è necessa-
rio che gli elementi delfarray siano siste-
mati in ordine crescente ed anche in tal
caso si riconosce subito la necessità di un
algoritmo di ordinamento.
Visto che abbiamo più volte introdotto
la parola "algoritmo", cerchiamo di met-
terci d'accordo sul suo significato.
Possiamo pensare ad un algoritmo come
ad una sequenza finita di operazioni da
svolgere per risolvere un certo problema. I
vari passi che lo compongono (che debbo-
no essere in numero "finito") devono an-
che essere descritti in maniera "non ambi-
gua". nel senso che ciascuno di essi deve
avere un significato che non induca in erro-
ri di interpretazione. Forse é inutile dirlo,
ma la definizione vuole che un algoritmo,
per essere “efficiente", debba essere com-
posto da passi ciascuno dei quali svolgibile
in tempo finito da una macchina.
A questo punto non ci resta che entrare
nel vivo dell'argomento descrivendo un al-
goritmo di ordinamento molto usato. In
questo e negli altri casi potremo riferirci
solo ad elementi numerici senza nessuna
perdita di generalità. Per il passaggio im-
mediato ad elementi alfabetici, basterà
considerare una lettera “minore o maggio-
re" di un'altra secondo il posto che essa
occupa nell'alfabeto dalla A alla Z.
Ordinamento a bolla (Bubblesort)
È un metodo di ordinamento struttural-
mente lento se applicato a liste molto "di-
sordinate" ma può però rivelarsi abbastan-
za produttivo se applicato a liste parzial-
mente in ordine.
L'applicazione del metodo è molto sem-
plice. Immaginiamoche i numeri posseduti
siano disposti in fila l'uno dietro l'altro e
che sia possibile identificare in questa lun-
ga coda, che chiameremo vettore, la posi-
zione di ciascun elemento facendogli corri-
spondere un indice. Cosi il primo elemento
diventa l'elemento v(l), il secondo diventa
l’elemento v(2) e cosi via fino all'ennesimo
v(N) (figura I ). Se i numeri del vettore
sono ordinati casualmente, per disporli in
ordine crescente possiamo pensare di effet-
tuare dei confronti tra coppie e di scambia-
re il primo elemento della coppia con il
secondo se essi non sono in ordine crescen-
te o di non effettuare alcuno scambio se
tale ordine è rispettato. Per capire meglio si
faccia riferimento all'ordinamento pratico
di 5 elementi schematizzato in figura 2 do-
ve abbiamo supposto che l'ordine iniziale
sia il seguente:
7 4 5 3 2.
Cominciamo con l'esaminare la prima
coppia: dato che 7 è maggiore di 4. il primo
numero dovrà prendere il posto del secon-
do e viceversa. Compiuta tale operazione,
il nuovo ordine diventa:
4 7 5 3 2.
Ripetiamo il procedimento sul nuovo
insieme considerando quelli che ora sono il
secondo e il terzo elemento, cioè 7 e 5.
Anche in questo caso bisogna effettuare lo
scambio e dopo di esso la lista risultante é:
4 5 7 3 2.
106
MCmicrocomputer n. 38 - febbraio 1985
TAO J>VE ELEMENTI
Proseguendo in questo modo, con altri
due scambi indispensabili otterremo la se-
guente disposizione:
4 5 3 2 7 .
Si osserva facilmente che la lista non è
ancora in ordine ma l'effetto più importan-
te ottenuto è di aver portato l'elemento più
grande dell'insieme (7) ad un estremo (la
sua posizione definitiva), e ciò è un fatto
evidentemente rilevabile su liste di qualsia-
si lunghezza. Possiamo allora ripetere il
procedimento sulla sottolista composta
dai numeri:
4 532
che dopo il numero di confronti e scambi
richiesti (N-2) diventa:
4 3 2 5
e si ottiene di porre nella posizione definiti-
va anche il numero 5.
In generale, ripetendo la sequenza de-
scritta per ogni sottoinsieme non ordinato
okù/mahent o o Bolla
EOA C-A To N-A
r -0
FoA K - A To N-t
IF V(Kt-t) » AM
THEn Aoo
V(k)-vG <+<)
Vfie)itz.T
F= ±
Aoo NExT K
IF F-O THeN SToP
KJtxT i
usra
OAbìURTF
vie in Basi < .
MCmicrocomputer n. 38 - febbraio 1985
107
ottenuto con il procedimento precedente,
si riesce a mettere i vari elementi dell'insie-
me in un ordine crescente.
Il procedimento di scambio, che appare
abbastanza immediato sulla carta, se im-
plementato su una macchina ha bisogno di
utilizzare un artificio per poter funzionare
bene. Per renderci conto della difficoltà,
supponiamo che in due diverse locazioni di
memoria. A e B. siano contenuti due nu-
meri. h e k. Se vogliamo scambiare di posto
i due elementi non possiamo farlo diretta-
mente in quanto, se ad esempio ordiniamo
di porre “h" in "B" il contenuto di A an-
drebbe semplicemente a sostituirsi a quello
di B e quest'ultimo andrebbe perduto. La
figura 3 mostra come ottenere lo scopo
prefisso adottando una locazione tempo-
ranea che chiameremo T. La sequenza e-
satta è la seguente:
1) mettere il contenuto di A in T;
2) mettere il contenuto di B in A;
3) mettere il contenuto di T in B:
per effettuare lo scambio sono quindi ne-
cessari tre passaggi.
Alcuni Basic, va comunque detto, pos-
siedono una istruzione apposita per lo
scambio di due variabili (swap nel Mi-
crosft).
Se a questo punto della lettura vi è tutto
chiaro, non vi sarà difficile comprendere il
diagramma riportato nella figura 4 che de-
scrive l'algoritmo in maniera completa e
quindi facilmente adattabile a qualunque
macchina. Il flag F assume una notevole
importanza in quanto permette l'arresto
delle operazioni nel caso in cui non si sia
verificato, ad un certo punto del procedi-
mento. alcuno scambio, cosa che segnala
l’avvenuto ordinamento della lista. Per
mezzo dell'introduzione di F. un procedi-
mento così lento può diventare più vantag-
gioso di altri più veloci su liste parzialmen-
te ordinate in cui bisogna modificare solo
pochi elementi.
Altri due metodi
Un altro procedimento di ordinamento
può essere ottenuto utilizzando un diverso
metodo di confronto: si confronta l'ele-
mento v(i) della lista con tutti i rimanenti e
l'elemento più piccolo viene situato al po-
sto di v(i) dopodiché viene incrementato
“i” e ripetuti i vari passaggi. In quest'ulti-
mo modo, l'insieme viene ordinato dopo
soltanto N-l passaggi.
In pratica si suppone all'inizio che il pri-
mo elemento della lista sia quello più pic-
colo; lo si confronta allora con il secondo e
se l'assunto rimane vero, cioè il primo ele-
mento è effettivamente minore del secon-
do, si procede all'esame di quello successi-
vo. cioè il terzo. In caso contrario, da quel
momento in poi è il secondo elemento della
lista ad essere considerato il minimo ed il
confronto sarà effettuato tra quest'ultimo
ed i rimanenti. Consideriamo, per fare un
esempio, ancora l'insieme:
7 4 5 3 2:
per applicare il metodo in esame, si suppo-
ne per prima cosa che l'elemento v( I ). 7 nel
nostro caso, sia il minimo e si confronta
tale elemento con quello in seconda posi-
zione, cioè v(2): dato che 7 è maggiore di 4,
l'evidenza dei fatti ci impone, da quel mo-
mento in poi. di assumere come minimo il
secondo elemento, cioè 4. e cosi via. Alla
fine dei confronti scambieremo la posizio-
ne del minimo effettivo con la prima della
lista e ripeteremo il procedimento per i
rimanenti elementi e cosi via. Anche que-
sto algoritmo viene sintetizzato nella figu-
ra 5. Un ultimo metodo che abbiamo scel-
to di illustrare in queste righe è un procedi-
mento di ordinamento veloce (quicksort) a
cui per semplicità preferiamo introdurvi
con un esempio. Consideriamo una lista di
8 elementi, ad esempio:
v(1) v(2) v(3) v(4) v(5) v(6) v(7) v(8)
[13] 9 34 65 4 67 8 (3)
Definiamo l'elemento v(l) come "ele-
mento di riferimento ", E, e confrontiamo-
lo con l'ultimo all'estrema destra: h e k
sono due puntatori di cui vedremo tra bre-
ve l'utilità. Se E è minore o uguale a v(8)
non si effettua nessuno scambio, viene de-
cremenlato di una unità il puntatore oppo-
sto ad E. nel nostro caso k che si porta in
posizione v(7), e si procede al nuovo con-
fronto tra E e l'elemento indicato da tale
puntatore. Se invece E è maggiore di v(8).
come nel nostro caso, si effettua lo scam-
bio. si incrementa di una unità il puntatore
di sinistra, h. e si procede al confronto tra il
nuovo elemento indicato da h e l'elemento
di riferimento E. La nuova situazione sarà
allora:
3 (9) 34 65 4 67 8 [13]
Il nuovo confronto tra 9 e 13 non impli-
ca uno scambio essendo 9 minore di 1 3 e
quindi sarà incrementato h di una posizio-
ne:
3 9 (34) 65 4 67 8 [13]
Confrontando ora il numero indicato da
h, cioè 34, con E (13) ci accorgiamo che i
numeri non sono in ordine quindi bisogne-
rà effettuare lo scambio e decrementare il
puntatore k opposto ad E:
3 9 [13] 65 4 67 (8) 34
a questo punto il procedimento dovrebbe
essere chiaro, comunque per completezza
108
MCmicrocomputer n. 38 - febbraio 1985
riportiamo di seguito i passi successivi:
3 9 8 (65) 4 67 [13] 34
3 9 8 [13] 4 (67) 65 34
3 9 8 [13] (4) 67 65 34
3 9 8 4 [13] 67 65 34
Come é semplice constatare, al termine
della prima serie di passaggi l'elemento E
viene a trovarsi nella posizione che rispetta
il suo ordine finale nella lista. A questo
punto il nostro insieme di partenza si trova
diviso in due sottoliste che si trovano ri-
spettivamente a destra ed a sinistra di E.
Ripetendo il procedimento per i due sot-
toinsiemi ottenuti si verificherà una cosa
analoga che. alla fine di tutti i passaggi, si
concluderà con l'ordinamento completo
della lista. Anche questa volta riportiamo
nella figura 6 il diagramma del procedi-
mento di un passaggio. I metodi descritti
non sono naturalmente gli unici; noi li ab-
biamo scelti perché ci sono sembrati abba-
stanza idonei ad illustrare i primi rudimen-
ti riguardanti le tecniche di ordinamento
utili a sensibilizzare il lettore su un argo-
mento cosi interessante. I vari metodi sono
tutti validi e l'utilità di impiegarne uno al
posto di un altro deriva dalle necessità del
momento. Se dobbiamo ordinare una lista
di numeri generali casualmente il metodo
più efficiente e professionale è senza dub-
bio il quicksort. ma. se ci troviamo di fron-
te a liste parzialmente ordinate, in molti
casi risulta efficiente anche un metodo a
convergenza meno rapida.
Noi ci fermiamo qui rimandando mag-
giori approfondimenti ai testi specializzali.
electronic device*
DIVISIONE informatica
ELABORATORI
C Plus II A-48 KByte. tastìerino
numerico, alimentalore 5A,
compatibile Apple
C Plus II B-64 KByte I
C Plus II C-64 KByte. Z 80
(Oual Processor)
C Plus II D-64 KByte. Z 80.
40/80 Colonne I
Elite 111-64 KByte Dual Processor, tastie
rico. tasti (unzione. Basic e CPM I
Boss 1 con tastiera separata i
SISTEMI
STARTER 1: C Plus II A * Drive
+ Driver Mltac meccanica Shugart 5"
+ Monitor Philips 12" TP 200
+ Joy Stick autocentrante Li
STARTER 2: C Plus II C
•rive Controller + Driver Mltac 5"
tonitor Philips 12" TP 200 Li
STARTER 3 SISTEMA UFFICIO:
: Plus IIBo Elite III + 2 Drivers Mita
+ Drive Controller + Monitor Philips
+ Stampante grafica e letter
tuality 80 Colonne 120 /cps
+ Corso Word Processing
la C IBM compatibile HARD/SOFT cc
il PC
C IBM A. Microprocessore 8088, 128K RAM grafici
colore, doppio drive slim 5" 360 KB, monitor 12"
verde o ambra + pacchetto 5 programmi
Llt. 3.500.0C
C IBM B: come C IBM A ma con un drive 360 K e u
Winchester 10 MB Llt 6.000.000
Stampante Epson RX 80 F/T ...
Stampante Epson FX 80 Llt. 1.150.000
Stampante Epson FX 100
quality 80 Colonne 120/cps.
interfaccia parallela Apple Llt 1.050.000
Stampante Panasonic grafica 6
Colonne 120/cps. interfaccia
parallela Apple Ut. 950.000
Stampante PX 80. 80 cps, graf
compatibile EPSON 80 RX FT* Llt. 680.000
Monitor Philips TP 200 12"
fosfori verdi Llt. 160.000
2000 12"
fosfori verdi, ambra Llt. 200.000
Monitor Hantarex CTM 2000 15"
fosfori verdi, ambra Llt. 305.000
UMiU ' I. I H ' .l
SKC 5" singola faccia.
LiL 3.800
SKC 5~ doppia fa
DATALIFE, FLEXETTE . VEREX
MCmicrocomputer n. 38 - febbraio 1985
SCONTI PARTICOLARI Al SIGG. RIVENDITORI!!!
FS
NUOVA NEWEL s ,,
di Ciampitti A. & C. Software & Computer Division
MATERIALE ELETTRONICO Rivenditore Sinclair
Milano • Via Mac Mahon, 75 - tei. (02) 32.34.92 Importazione diretta
Magazzino - Via Dupré, 5 - tei. (02) 32.70.226
È IN EDICOLA
IN TUTTA ITALIA
COMPUTER GAMES
& UTILITIES
EDITRICE SOFTWELL
Mensile raccolta su cassetta di pro-
grammi per home computer più inserto
rivista.
Ogni mese una raccolta di giochi e utilità
per i più diffusi home computers (Sin-
clair - Commodore etc.)
Ogni cassetta è accompagnata da am-
pie descrizioni d’uso, sia per i giochi che
per le utilit i es. I giochi sono novità asso-
lute, la parte è completamente inedita e
diversa da qualsiasi altra in commercio
l’inserto contiene normalmente:
una serie di recensioni sulle ultime novi-
tà software made in England U.S.A. etc.
Novità hardware in commercio.
Una pagina di attualità computers.
Una classifca di vendita del software in
Italia per la quale si richiede la collabora-
zione di tutti i computers shop d'Italia.
Un progetto hardware.
Alcuni listati di programmi.
La posta dei lettori.
Un concorso quiz con in palio un com-
puters al mese.
Mese per mese sulla copertina di vendi-
ta sarà specificato a quale settore di
pubblico può interessare la pubblicazio-
ne.
Il prezzo di vendita al pubblico è di L.
7.500
Per informazioni richieste, offerte di col-
laborazione preghiamo contattare la re-
dazione provvisoria al n. tei. 323492 op-
pure 3270226 corrispondente a Nuova
Newel s.a.s. Via Mac Mahon, 75 - Via Du-
prè, 5 - Milano che ci ha offerto la propria
collaborazione.
Preghiamo tutti coloro che hanno novità
hardware quali prodotti finiti o kit elettro-
nici, da divulgare di inviarci il materiale
da visionare, verrà pubblicato gratuita-
mente tutto ciò che può interessare il
più vasto pubblico.
Inoltre preghiamo i nostri futuri lettori di
inviarci le proprie riflessioni, proteste,
lettere di elogio, o di deprecazione, sui
vari aspetti del mercato software e hard-
ware in Italia, e sulle organizzazioni (ne-
gozi, shop, venditori per corrisponden-
za) che ne sono coinvolte.
Grazie. Ciao
Softwell
Dalla Nuova Newel e alla Nuova Newel Computer Shop di Via Mac Mahon, 75 - Milano
Tel. 02/323492 puoi trovare tutta la gamma di prodotti Sinclair, Commodore, MSX
accessori hardware e software.
Il Buffer di tastiera
Nell 'ili limo articolo di questa serie abbia-
mo visto, insieme ad alcune caratteristiche
generali della memoria video, anche come
scrivere o disegnare sullo schermo senza uti-
lizzare l'istruzione Frinì, come intercettare
delle parole impresse sullo schermo ed un
modo rudimentale di memorizzazione di
schermate. Vogliamo ora. nei due artìcoli
che seguiranno, fare un passo avanti illu-
strando degli altri melodi che permettono dì
conservare su un supporto magnetico il con-
tenuto di una pagina video e di richiamarlo
al momento opportuno. Vedremo inoltre co-
me sia possibile codificare il contenuto della
memoria video con un insieme di numeri in
maniera che risulti facilmente interpretabile
e quindi riproducibile da parte di chiunque.
Di schermate comunque parleremo la pros-
sima volta perchè prima è indispensabile co-
noscere l'argomento che segue.
Il Buffer di tastiera
Molti, leggendo il titoletto. si chiederan-
no cosa c'entra il Buffer della tastiera con
la memoria video. Vi diremo allora che
direttamente non c'è nessun legame tra
queste due cose, ma noi riusciremo in un
certo senso a legarle indirettamente per
raggiungere una elementare codifica di u-
na videata completa. Ma andiamo per gra-
di. Ogni volta che noi premiamo un tasto,
il codice ASCII del carattere corrisponden-
te viene conservato in una zona apposita-
mente concepita per accumulare un certo
numero di caratteri, per la precisione IO. in
attesa di essere processati. Il tutto avviene
in maniera trasparente all'utente poiché
gestito per mezzo dell'interrupt del sistema
(di cui abbiamo già ampiamente parlato)
che viene abilitato ogni sessantesimo di
secondo. Il perché della presenza di un
Buffer del genere non è molto difficile da
intuire: se noi premiamo un tasto prima
di Tommaso Pantuso
che il sistema sia pronto ad esaminarlo,
esso non andrà perduto perché il codice
corrispondente sarà conservato nella zona
di cui stiamo parlando. Vogliamo attirare
la vostra attenzione su un primo importan-
te comportamento del Buffer in questione:
quando esso è completo, e questo avviene
se riusciamo a mettere in attesa dieci carat-
teri. la pressione dell'undicesimo tasto ne
provoca lo svuotamento dopo di che il pro-
cesso può ricominciare. Vista l'ampiezza
ridotta di tale zona (dieci byte) non si pensi
comunque di riuscire a premere dieci tasti e
battere il sistema in velocità nel senso che
sarà mollo difficile accumulare dieci battu-
te e provocare l’azzeramento del Buffer
prima che il suo conten uto sia stato proces-
sato. Vediamo un po' più da vicino le im-
plicazioni di questo comportamento.
Come detto, il Buffer è composto da
dieci byte e si estende, sia per il Vie che per
il C 64. dalla locazione 63 1 alla 640. L'ele-
mento più imporatante dell'insieme di ge-
stione é un puntatore P ad un byte situato
nella locazione 198 che contiene il numero
di tasti accumulali. Caricando allora il
Buffer e dando un opportuno valore a P
potremo forzarne lo svuotamento e sfrut-
tare a nostro vantaggio tale comportamen-
to. In pratica, utilizzando le proprietà della
zona in questione potremo simulare dei
comandi diretti. ..durante lo svolgimento
di un programma. Sembra un controsenso,
ma se ci seguirete attentamente, avrete pre-
sto le idee chiare.
Simuliamo i comandi diretti
Supponiamo di voler caricare un pro-
gramma (ad esempio da cassetta) e di av-
viarlo automaticamente a caricamento av-
venuto. La cosa é molto semplice perché
basta premere il tasto Shift insieme al tasto
Run/Stop. operazione che provoca l'effet-
to desiderato. Supponendo però di voler
compiere la stessa azione durante lo svolgi-
mento di un programma, ci troveremmo di
fronte ad un enigma difficilmente risolubi-
le con le consuete procedure. Infatti, nor-
malmente. quando la macchina sta elabo-
rando. ci permette di interagire con essa
mettendoci a disposizione dei comandi
d'I/O non sufficienti però ai nostri scopi.
Ora. se noi potessimo far fermare per un
istante il sistema, scrivere sullo schermo il
comando diretto richiesto, premere Re-
turn ecc. ecc. senza ... toccare la tastiera,
avremmo raggiunto il nostro scopo. Il
Buffer di tastiera ci olire la soluzione nei
seguenti termini. La sequenza Load + Re-
turn + Run é codificata semplicemente
con il numero 131: quando noi premiamo i
tasti Shift + Run /Stop, tale numero viene
introdotto nel Buffer di tastiera e da quel
momento in poi le cose vanno da sé. Dato
che il Buffer è accessibile mediahte dei co-
mandi di Poke, noi possiamo simulare ab-
bastanza semplicemente il comportamen-
to appena descritto andando a scrivere nel-
la locazione interessata, la 631. il numero
che codifica il comando in questione. Pro-
vate allora ad effettuare in modo diretto:
Poke 631,131: < Return >.
Non rileverete nessun cambiamento.
L’operazione indicata non è infatti suffi-
ciente a provocare lo svuotamento del Buf-
fer e l'esecuzione dei comandi in esso con-
tenuti. Dovremo specificare un'altra infor-
mazione utile al sistema per procedere e
cioè il numero di caratteri che vogliamo
"tirar fuori" dalle locazioni 63 1 in poi (fino
alla 640) attribuendo il relativo valore al
puntatore situato nella locazione 198. In
altre parole, se immaginiamo di riempire le
prime n locazioni del Buffer (con n che va
da la IO), perché la sequenza da esse codi-
ficata venga eseguita dovremo dare l'ulte-
riore comando:
Poke 198.n
in seguito al quale le locazioni citate ver-
MCmicrocomputer n. 38 - febbraio 1985
ranno "svuotate", nel senso che comparirà
sullo schermo il loro contenuto decodifica-
to (cioè il carattere al posto del codice)
(figura I). Ritornando a noi, il codice del
caricamento + autoLoad è 131 e quindi il
comando completo occupa una sola loca-
zione; dopo aver allora “Pokato" 131 nella
posizione 63 1 . corrispondente al primo by-
te del Buffer, dovremo scrivere il numero I
nel byte rappresentante il puntatore per
comunicare al sistema che deve considera-
re solo |l primo elemento del Buffer. Il
lutto si risolverà con:
Poke 631.1 31 :Poke 198,1 <Retum>
che farà comparire sullo schermo la scritta
"Press Play on Tape" e genererà automati-
camente il Return (figura 2).
La prima cosa importante da imparare è
che, se la procedura descritta viene gestita
da un programma, perché il contenuto del
BufTerdi tastiera venga preso in considera-
zione bisogna... uscire dal programma. In
altre parole, dopo aver immagazzinato gli
appositi valori nelle adeguate locazioni
con delle Poke, bisogna scrivere di seguito
il comando End. Il sistema scriverà allora
Ready e solo dopo questo evento andrà a
leggere il contenuto del Buffer, Ciò crea
una difficoltà: il programma si ferma. Que-
sto inconveniente può comunque essere ri-
solto con la stessa tecnica codificando nel
Buffer il comando Goto m che rimanderà
l'esecuzione ad una certa linea, nel nostro
caso la m. Avremo comunque modo di
capire meglio questo fatto con degli esem-
pi, fra breve.
Un altro inconveniente è dato dal fatto
che, rimandando in esecuzione il program-
ma con un Goto, viene perso il contenuto
delle variabili. Anche questo inconvenien-
te può comunque essere risolto memoriz-
zando tali variabili in alcune locazioni inu-
tilizzate dal sistema. Per fare un semplice
esempio, se abbiamo la necessità di conser-
vare il valore A = 54. basterà, prima del
Goto, effettuare: Poke L.A dove L è una
qualsiasi locazione di Ram libera che non
viene modificata dal sistema nel corso del-
l'esecuzione di un programma, se non die-
tro nostra richiesta.
I primi esempi
Ricapitolando, l'impiego principale che
noi possiamo trarre dai comportamenti
descritti è quello di permettere ad un pro-
gramma di automodificarsi, nel corso del-
l'esecuzione generando delle istruzioni cosi
come verrebbero scritte dall'utente arre-
stando il programma. Abbiamo visto co-
me risolvere alcune difficoltà e vogliamo
accennare al modo in cui risolverne un'al-
tra introdotta dalle modeste dimensioni
del Buffer. Per fare un esempio, supponia-
mo di voler aggiungere, in seguito ad una
determinata scelta, la linea:
10 PRINT "CASA".
Se il programma fosse fermo, bastereb-
be scrivere 10 Print “casa" < Return > , ma
dato che supponiamo che il programma sia
in esecuzione, dovremo simulare l'opera-
zione mediante l'impiego del Buffer.
Per prima cosa dobbiamo ricavare i co-
dici ASCII dei vari elementi costituenti la
frase completa utilizzando le apposite ta-
belle fornite nei manuali o per mezzo del
comando Print Asc("x"), dove x é il carat-
tere di cui vogliamo ottenere il codice. Uti-
lizzando per Print la forma ridotta, data
dal punto interrogativo, otterremo la se-
guente tabella:
A questo punto provate ad immettere
questi dati con il seguente programma:
1 FOR I 0 TO 9
2 READ A
3 POKE 631 + 1, A
4 NEXT ItPOKE 198,10
20 DATA 49,4863
34,67.65,83,65,34,13
e date il Run. Vedrete allora comparire
sullo schermo la scritta
10 PRINT'CASA"
dopo di che si genererà automaticamente il
Return e la frase verrà memorizzata come
linea di programma, identificata dal nume-
ro 1 0; potrete verificare questo fatto dando
il List. Bene: fino a questo punto nessuna
difficoltà. Immaginiamo però che la paro-
la da scrivere sia composta appena da un
carattere in più o il numero di linea sia
formato da più di due cifre. In tali condi-
zioni il Buffer di tastiera non avrebbe più la
capacità di contenere tutti i caratteri e a
prima vista ci vedremmo impossibilitati ad
utilizzare i metodi precedenti. Possiamo
però utilizzare una tecnica mista. Per mez-
zo dell'istruzione:
n PRINT "10PRINT"CHR$(34) " . .. "CHR$(34)"
faremo scrivere dal programma la linea
che ci interessa dove n rappresenta il nu-
mero della linea ed al posto dei puntini
introdurremo la parola desiderata.
ChrS(34) è il codice delie virgolette ed è
stato usato perché altrimenti non si po-
trebbero scrivere più di due virgolette sulla
stessa linea. Scritta la linea sullo schermo,
dovremo fare in modo che il cursore vi si
"depositi" sopra e ciò potrà essere ottenu-
to introducendo nel Buffer, per il numero
di volte sufficiente, il codice del carattere
Shift + Crsr verticale. Fatto ciò non ci
resta che simulare la pressione del Return
con il codice 13 nel Buffer. Questa sequen-
za di operazioni, che "narrata" sembra
complessa, è in realtà molto semplice e
viene implementata con le seguenti linee:
1 PRINT"Shift + Clr/Home"
2 PRINT" 10PRINT"CHR$(34)"CASAXHRS(34)
3 POKE631 . 1 45:POKE632. 1 45:POKE633. 1 45
4 POKE634,13:POKE198.4
Sella linea 3, il codice 145 nei primi tre
byte provoca Io spostamento del cursore di
ire posizioni verso l'alto. Non è difficile
■ ''servare, dato il Run, che questo segmen-
I» funziona come il precedente con l'unica
ma sostanziale differenza che la linea da
aggiungere può in questo caso essere lunga
molto più di quanto sia permesso dalla
capienza del solo Buffer di tastiera.
Un passo avanti
Supponiamo ora che che il segmento di
cui abbiamo parlalo faccia parte di un pro-
gramma e che, dopo aver aggiunto la linea
che interessa, il controllo debba ripassare
al programma in oggetto. Come già detto,
il contenuto del Buffer di tastiera viene
fuori per cosi dire solo dopo un End; nel
segmento precedente l'End veniva intro-
dotto automaticamente dopo la linea 4
perchè il programma terminava, ma in
molti dei casi in cui può essere impiegata la
tecnica descritta il programma continua e
se poniamo un "End" per provocare lo
svuotamento del Buffer otterremo anche
l’arresto dell'elaborazione e ciò evidente-
mente non sempre fa comodo.
Come però abbiamo accennato, la solu-
zione a questo ulteriore problema è abba-
stanza semplice in quanto basta far simula-
re, nel corso dello svuotamento, l'istruzio-
ne diretta Goto m, dove m rappresenta la
linea da cui vogliamo ricominci lo svolgi-
mento del programma. Tale istruzione la
daremo in forma ridotta per risparmiare
spazio, cioè come G + Shift O a cui corri-
spondono i codici 71 (G) e 1 1 1 (Shift O).
49
li 9
65
3 li
67
65
8 3
65
3V
J3
-1
0
?
"
C
fl
5
A
"
Rt«.
112
MCmicrocomputer n. 38 - febbraio 1985
Per chiarire le idee facciamo il solito esem-
pio.
Consideriamo sempre il segmento prece-
dente e supponiamo, dopo aver aggiunto
la linea IO. di voler passare il controllo di
nuovo al programma mandando l'esecu-
zione ad una nuova linea, la 20, che provo-
ca l'arresto momentaneo fino alla pressio-
ne di un tasto qualsiasi. La linea in questio-
ne può ad esempio essere la seguente:
20 GET A$:IF AS = "" THEN 20;
aggiungendo nel nostro caso solo questa
linea, quando al momento opportuno si
premerà un tasto il programma avrà termi-
ne. Il programmino d'esempio proposto è
il seguente:
0 PRINT'CIr/Home"
1 PRINT" 10PRINT"CHR$(34) "CASA "CHR$
(34)
2 POKE631,145:POKE632,145:POKE633,145
3 POKE634,13:POKE635.71:POKE636.111
4 POKE637.50:POKE638.48:POKE639,13
5 POKE198.9.END
10 REM questa linea sarà modificata
20 GETAS: IFA$ = “ “ THEN 20
Anche in questo caso per maggiore chia-
rezza presentiamo la tabellina dei caratteri
introdotti nel Buffer ed i relativi codici:
Il segmento ha bisogno di pochi com-
menti. Dopo il <Run> vedrete compari-
re la linea 10, il cursore vi ritornerà sopra e
sarà generalo un primo Return dopodiché
comparirà il Ready. Dopo ciò verrà scritto
sullo schermo, in forma ridotta. Goto 20 e
quindi generato un altro Return. Con Po-
ke 198,9:END si ottiene lo svuotamento
del Buffer.
Salviamo le variabili
Ci resta ora da approfondire un ulterio-
re aspetto che ci permetterà di utilizzare in
maniera più produttiva il Buffer di tastie-
ra: il salvataggio delle variabili.
Nel programma precedente, quando
viene generata l'istruzione Goto 20, se il
sistema sta conservando qualche variabile
questa va perduta. Sembrerebbe allora che
in una grossa quantità di casi l'utilizzo del
BulTer diventi inutile a causa di questo
handicap. Anche questa volta vogliamo
proporvi una soluzione del problema. Co-
me saprete, esistono nella memoria del Vie
20 o del C 64 delle locazioni che l'utente
può impiegare a suo piacimento per me-
morizzarvi delle piccole routine in linguag-
gio macchina senza che debba proteggere
delle apposite zone nella parte alta della
memoria. Una di queste zone accessibili è
ad esempio il Buffer usato dal registratore
a cassette, al quale possiamo accedere con
una certa tranquillità se non sono richiesti
caricamenti di dati o programmi da nastro.
Di tale zona, per il nostro esperimento,
utilizzeremo la locazione 820.
Il "trucco” che vi proponiamo, se cosi si
può chiamare, consiste nel memorizzare,
per mezzo del comando Poke, il valore
della variabile che andrebbe perduta in u-
na o più locazioni da cui andremo poi a
ripescarla al momento opportuno. Ad e-
sempio, se A = V con V minore di 256. il
tutto si risolverà con Poke L.A dove L è la
locazione in cui depositiamo il valore da
salvare: lo stesso valore potrà poi essere
riletto con Peek (L). Se la variabile supera
il limite suddetto, potremo dividerla in una
parte più significativa (parte alta) ed in una
meno significativa (parte bassa) e conser-
vare i valori in due locazioni. La suddivi-
sione in parte alta e bassa può ad esempio
essere ottenuta nel seguente modo:
A = parte alta = int(VS256)
B = parte bassa = V-A-256
e per riavere la variabile si effettuerà:
V= A-256+B.
Per variabili di valore più elevato si pos-
sono studiare altri metodi ma per il mo-
mento la cosa non ci riguarda.
Tornando a noi, supponiamo di voler
aggiungere al programma precedente per
tre volte la linea Print“casa" con numera-
zione che va da I a 3. Normalmente la
prima cosa che viene in mente è di impiega-
re un contatore, ma nel nostro caso ciò è
impossibile perché esso andrebbe perduto
dopo il Goto. La soluzione completa ve la
forniamo nel segmento della figura 5 che
ormai dovreste essere in grado di interpre-
tare da soli. Notare come l'incremento del-
la locazione 820, preventivamente azzera-
la. venga effettuato semplicemente con Po-
ke (830), Peek (830) + 1. Per concludere, vi
forniamo in figura 6 un programmino che
permette di sostituire durante l'esecuzione
un'intera funzione. Noi abbiamo usato il
programma per calcolare il valore dell'or-
dinata della funzione data l'ascissa ma so-
stituendo o aggiungendo le linee opportu-
ne si può far svolgere qualsiasi calcolo.
Dopo il Run. voi dovrete solo introdurre la
funzione di cui si vogliono calcolare i punti
in maniera intellegibile al computer cioè
come X*X oppure X*X + 3*X + 2 ecc.
Per questo mese ci fermiamo qui ma vi
aspettiamo la prossima volta per vedere
insieme come codificare delle schermate
per renderle facilmente interpretabili e co-
me queste possano essere salvate su nastro
o disco. MC
5 POKE830 ; 0 : GOTO70
6 PRINT "IT
? PR I NTfl ; " PR I NT " CHR$ ( 34 ) " CASA " CHRt ( 34 )
20 P0KE631 , 145 : P0KE632, 145
21 P0KE633, 145 : P0KE634, 13
22 P0KE635 ,71 : P0KE636 ,111
23 P0KE637 , 55 : P0KE638 , 48
24 P0KE639 , 1 3 : POKE 1 98 , 9 : END
70 GETftf : I Fflf - " " THEN70
75 POKE830, PEEK<830)+1
80 A=PEEK<830) : IFR>3THENEND
90 G0T06
5 PRINT "73"
10 REM
20 REM CALCOLO DELL 'ORDINATA
23 REM DI UNA FUNZIONE
27 REM DATA L'ASCISSA
30 REM
35 PRINT
40 INPUT "FUNZIONE" ; Ff
50 PRINT "339 DEF FNFOO= ";F$
60 P0KE63 1,19: P0KE632 ,13: P0KE633 , 7 1
65 P0KE634 , 207 : P0KE635 , 57
70 P0KE636 , 57 : P0KE637 , 13 : POKE 198, 7 : END
99 REM QUESTA LINEA SARA' SOSTITUITA
100 I NPUT "ASCI SSA " i X
110 V=FNF(X)
115 PRINT" SORDI NAT AB" ; V
120 I FX=999THEN40
130 GOTO 100
Figura 5 - Dopo il Run
Figura fi - Durante questo programma, digitando 999 si passa all'introduzione di una
MCmicrocomputer n. 38 - febbraio 1985
113
COMMODORE 64
L’ADP Basic
P come Printer
Penultimo appuntamento con VADP Basic: questo mese è la volta delle stampanti
Commodore MPS 801 e MPS 802.
Come per il Plotter potremo dirottare su carta i normali output video,
nonché sfruttare facilmente le varie funzioni svolle da queste due periferiche.
Sempre senza OPEN, CMD e canee Ilei ti (t) vari.
Avvertenza
1 listati Basic presentati negli ultimi tre
numeri, riguardanti le periferiche Drive
1541 e Plotter 1520, devono essere caricati
in memoria e eseguiti tutti per poter imple-
mentare le istruzioni di questo mese e del
prossimo. Queste, infatti, fanno riferimen-
to a porzioni di programma LM già pre-
senti per risparmiare spazio. Detto in altre
parole, chi non ha il plotter. ma solo disco e
stampante, non potrà non copiare anche le
linee data del mese scorso.
La cosa è diversa per questo mese: dato
che le due stampanti (la 80 1 e la 802) hanno
pochissimo in comune, e si suppone che
ben pochi utenti le posseggano entrambe.
l'ADP Basic si sdoppia. Gli utenti della 802
copieranno un listato, gli utenti della 801
un altro. È comunque necessario copiarne
uno, se si vuole aggiungere i comandi del
prossimo mese, riguardanti la definizione
dei tasti F1-F8 e... dulcis in fundo. una
gestione super semplificata dei file relativi.
L’MPS 802
Inizieremo con la stampante "intelligen-
te - bidirezionale - veloce - gioiello" MPS
802. I fortunati possessori sanno quanto
sia (ci sarebbe da usare un altro termine
di Andrea de Prisco
Quarta parte
per una maggiore resa) stressante sfruttare
tutte le possibilità offerte dalla macchina
in merito al controllo del formato, alla
selezione deH'interlinea. alla paginazione
automatica e altro. Se a ciò aggiungiamo
l'angoscia dei lisi su carta o. peggio, dell’
HardCopy di una schermata, la soluzione
é una sola: ADP Basic.
Il primo coniando di questo mese, ge-
mello del plotteriano PL. è PR: anche que-
sto. a seconda di cosa precede, ha 5 diversi
significati.
1) PR ON: predispone la stampante co-
me periferica di output. Dopo questo co-
mando. ogni normale PRINT sarà dirotta-
2) PR OFF: disabilita lo stato di PR
ON riattivando il video quale normale pe-
riferica di output.
3) PR RESET: invia alla stampante un
comando di Reset. Serve per riportare in
un sol colpo ai valori default tutti i para-
metri di stampa precedentemente variati.
4) PR SMALL: predispone il set di
stampa maiuscolo/minuscolo.
5) PR CAP: predispone il set di stampa
maiuscolo grafico.
Valgono le stesse considerazioni fatte
perii comando PL del Plotter: PR SMALL
o PR CAP deve essere selezionato prima
del PR ON e mai dopo (un PR OFF è
automaticamente forzato).
Sempre fratello del comando WRITE
del Plotter. il comando LPRINT permette
un output diretto su stampante senza cam-
biare normale periferica di output. La sua
sintassi è identica a quella del comando
PRINT del Basic standard: dopo LPRINT
può esserci una qualsiasi combinazione di
stringhe e/o numeri separati da virgola o
punto e virgola. Ad esempio scriveremo:
LPRINT "Età= ”;X
Per gli output formattati si usano i co-
mandi USINGeOUT: il primo per specifi-
care il formalo di stampa, il secondo per
inviare i dati da stampare. Ad esempio
potremmo scrivere:
10 USING “AAA AAA AAA "
20 OUT "CBM"CHR$(29)’ CBM "CHR$(29)
•CBM"
La sintassi è la stessa adoperata normal-
mente (senza l'ADP) ossia dialogando in
termini di OPEN e PR1NT5. Ricordiamo
che CHR$(29) è il carattere di SKIP ado-
perato per effettuare il formattamento. A
pagina 19 del manuale di istruzioni
dell'802 è mostrata una tabella di esempi di
formattamento. Listate in queste pagine
due programmi che eseguono il test del
manuale, uno con il Basic standard, l’altro
con l'ADP Basic.
114
MCmicrocomputer n. 38 - febbraio 1985
L'ADP Batic
MCmicrocomputer n. 38 - febbraio 1985
115
Per attivare la paginazione automatica
esiste il comando PAGE, seguito da ON.
OFF o SIZE rispettivamente per l'attiva-
zione, la disattivazione o per dichiarare il
numero di linee di stampa per pagina, pri-
ma di saltare la perforazione. PAGESIZE
implicitamente attiva la paginazione. Fac-
ciamo un esempio: all'accensione la stam-
pante è tarata per stampare 66 linee per
loglio. Per attivare l'autopaging su tale va-
lore digiteremo:
PAGE ON
per disattivare:
PAGE OFF
se vogliamo variare la dimensione della
pagina, ad esempio la metà. 33 linee, digi-
teremo:
PAGE SIZE 33
non sarà necessario un PAGE ON essendo
implicitamente attiva l'autopaginazione
col comando PAGE SIZE, Da questo mo-
mento in poi. fino a un prossimo PAGE
SIZE o a un PAGE OFF o a PR RESET,
la nostra MPS 802 ogni 33 linee di stampa
lascerà 6 linee vuote per separare le pagine.
Se vogliamo cambiare l'interlinea (lo
spazio tra le righe di stampa) è disponibile
il comando FEED seguito da un numero
minore di 1 27. Ad esempio:
FEED 18
produrrà 8 linee per pollice.
FEED 36
è il passo standard (6 linee per pollice)
FEED 21
farà combaciare le matrici dei caratteri,
come avviene sul video del 64.
Per quanto riguarda i messaggi di errore
della stampante esiste un apposito coman-
do per attivarli o disattivarli:
MESSAGE ON
e
MESSAGE OFF
non crediamo nell'opportunità di ulteriori
commenti.
Le ultime due istruzioni, LLIST e H CO-
PY permettono rispettivamente un lisi di-
retto su carta del programma Basic conte-
nuto in memoria e la copia su carta del
contenuto dello schermo. La sintassi del
primo è identica a quella del LIST. Potre-
mo ad esempio scrivere:
LLIST-50
per avere il listing delle linee minori di 50 o
LLIST 100-200
per quello compreso tra 100 e 200. Inutile
sottolineare che LLIST e basta esegue il lisi
su carta di tutto il programma.
HCOPY non necessita di alcun parame-
tro ed esegue l'HardCopy perfetto di tutto
il contenuto del video, facendo combaciare
le linee di stampa. Se non si desidera ciò è
sufficiente digitare prima di HCOPY:
POKE 52779,36
per ritornare alla normalità:
POKE 52779,21
per interrompere la stampa prima del ter-
mine. è sufficiente tenere premuta la barra
spaziatrice. In tutti i casi, alla fine un co-
mando di RESET sarà forzato alla stam-
pante per ripristinare i valori standard di
stampa.
Ah! un'ultima precisazione: il PR RE-
SET non ha effetto sul set di caratteri pre-
scelto: se abbiamo selezionato le minusco-
le, continueremo ad avere queste (solo PR
CAP fa tornare al modo maiuscolo/
grafico).
L’MPS 801
Fra i comandi descritti, quelli disponibi-
li anche per la 801 sono:
PR ON
PR OFF
PR SMALL
PR CAP
LPRINT
LLIST
HCOPY
e hanno esattamente la stessa sintassi, svol-
l. ADP Basii
gendo le medesime funzioni. Un'unica pre-
cisazione da fare riguarda HCOPY ed e-
ventuali apici (") presenti sullo schermo: al
momento della stampa vengono automati-
camente trasformati in apostrofo (') dato
che. come noto, gli apici rendono visibili i
caratteri di controllo (cuoricini, Q o altro)
e ciò non sempre é desiderabile. Per evitare
che le linee di stampa siano attaccate è
sufficiente digitare prima di HCOPY:
POKE 52267,15
se si ridesidera un HCOPY tutto di fila.
POKE 52267,8
come sempre, per arrestare la stampa pri-
ma del termine, si tiene premuta qualche
attimo la barra spaziatrice.
Specifici per l'80l abbiamo due nuovi
comandi: DOUBLÉ e GRAPHIC. ambe-
due seguiti da ON o OFF. Si usano per
abilitare o disabilitare il modo caratteri
espansi o il modo grafico. Riassumendo:
DOUBLÉ ON = = caratteri doppi
DOUBLÉ OFF = = caratteri standard
GRAPHIC ON = = modo Hi-Res
GRAPHIC OFF = = caratteri standard
General Remarks
Lo spazio è tiranno e il succo del discor-
so è che non commenteremo tutti i listati
LM. ma solo i più interessanti. Chi ci ha
seguito nei numeri scorsi non troverà diffi-
coltà a ben capire anche questo mese.
Le subroutine 1 . 2 e 3 servono per stabi-
lire comunicazioni con le stampanti. Più
precisamente, la prima (usata sia dalla 802
che dalla 801) serve per aprire un file di
stampa. La seconda e la terza (usate solo
dalla 802) si utilizzano per comunicazioni
con indirizzo secondario (specificato nel-
l'accumulatore prima della chiamata) di-
versi da 0. La prima apre la comunicazio-
ne, la seconda la chiude.
Il listato 8 implementa l'istruzione
HCOPY. Le prime 9 linee, aprendo un file
116
MCmicrocomputer n. 38 - febbraio 1985
I Al) P Busi,
di indirizzo secondario 6. cambiano l'inter-
linea di stampa per ottenere un HCOPY
con le righe tra loro adiacenti. Il valore
inviato è $15, 21 in decimale. Segue l'aper-
tura del file di stampa (JSRSC023) e la
specifica output di quest'ultimo. Nei byte
$FB e SFC si pone il puntatore al corrente
carattere di stampa. Come noto, i codici di
schermo sono diversi dai rispettivi codici di
stampa: le linee comprese tra SCC7B e
SCC8A eseguono la dovuta trasformazio-
ne. sfruttando anche una piccola tabella (4
byte) locata a SCCFC.
Un carattere $1 2 ( RVS ON) o $92 (RVS
OFF) é inviato prima del carattere vero e
proprio a seconda che questo sia o no re-
verse.
Se il carattere da stampare é apici ($22).
per non visualizzare i successivi caratteri di
controllo RVS ON e OFF. si ricorre a un
piccolo trucco: si invia uno SHIFT RE-
TURN (che manda la testina a capo, ma
non fa avanzare il foglio) e si riporta la
testina di scrittura alla giusta posizione
"stampando" il necessario numero di
blank.
Il JSR$FFE4 di SCC5A serve per con-
trollare la pressione di qualsiasi tasto per
interrompere anzitempo l'HardCopy.
La versione per l'MPS 801, non listata
per motivi di spazio, realizza il combacia-
mento delle linee inviando un CHR$(8)
prima di passare a nuova linea, e un
CHR$(15) prima di iniziare la stampa di
questa. Il trucchetto è ben spiegato nel ma-
nuale di istruzioni della 801.
Il listato 9, valido sia per l’80 1 che la 802,
implementa l'istruzione LLIST. Le opera-
zioni compiute sono molto semplici dato
che. tanto per cambiare, sfrutta resistenza
dell'istruzione LIST del Basic standard.
Per prima cosa apre un file di stampa. Pri-
ma di cedere il controllo al normale LIST,
riempe il buffer di tastiera con la stringa
PROFF + [RETURN] per disabilitare la
stampante al termine del LIST. La cosa è
direttamente visibile sul video, dato che
appare subito sotto il nostro LLIST non
appena terminata l'operazione. Il salto
all'implementazione del LIST è il JMP vi-
sibile all'ultima linea.
11 listato 1 1 (...e poi basta) implementa
l'istruzione DOUBLÉ propria della stam-
pante MPS 801. Il JSR$0079 di $CB74
preleva, depositandolo in A, il codice to-
ken che segue DOUBLÉ. Tre i casi: o c'è
ON ($9I)o c'è OFF ($E0) o stampa SYN-
TAX ERROR (JMPSC62B). Nel primo
caso invia alla stampante il codice $0E ( 14)
abilitando la scrittura espansa; nel secon-
do caso invia $0F (15) che seleziona il mo-
do caratteri standard. Il discorso sull’ADP
Basic si concluderà nel prossimo numero.
Tutto qui.
Questo programma è disponibile su di-
sco presso la redazione. Vedere l'elenco
dei programmi disponibili e le istruzio-
ni per l'acquisto a pag. 153.
MCmicrocomputer n. 38 - febbraio 1985
117
I Adventure per tutti...
di Guglielma Nigri - Montesilvano I PEI
Tulli i possessori di computer si sono in-
bai tuli, prima o poi. in un advenlure, versio-
ne computerizzala della vecchia caccia ul
tesoro, con in più l'enorme possibilità offer-
ta dalla macchina alla fantasia dell' autore, e
si sarà dibattuto inutilmente per ore tra pa-
ludi e pantani o avrà cercato inutilmente la
strada nella nebbia più fìtta per intere gior-
nale. E a tutti sarà venuta prima o poi la
tentazione di scriverne uno. ma avrà poi ri-
nunciato vista la gran mole di lavoro neces-
saria alla realizzazione con in più lo svan-
taggio di non poterlo poi nemmeno giocare
la meno di lavaggi del cervello I .
I due programmi che presentiamo permet-
tono invece di costruire lo scenario e le rego-
le di qualsiasi advenlure e poi ili giocarlo,
naturalmente anche cosi l'uutore non si di-
vertirà molto, ma si può iniziare uno scam-
bio di advenlure tra vari autori a patto che
tutti usino lo stesso programma. Proponia-
mo anzi agli autori di scambiare i dischetti
con il testo degli advenlure tramite le nostre
rubriche micromarket e micromeeting.
Capita spesso che molli abbiano buone
idee su un gioco ma non sappiano come
realizzarlo.
Quando ho fatto questa riflessione mi
sono anche chiesto se non fosse possibile
spiegare al computer lo svolgimento del
gioco e lasciare a lui l'onore (e l’onere) di
scriverlo.
Detto fatto ho realizzato questi pro-
grammi.
Il primo serve a spiegare il funzionamen-
to del gioco alla mela rispondendo ad op-
portune domande.
Il secondo serve a giocare l'avventura
utilizzando i dati salvati su memoria di
massa dal primo (può sembrare complica-
lo ma non lo è). A DVENTUR EDITOR
può salvare su disco advenlure game anche
molto estesi, fino a 100 stanze. 100 oggetti
e un dizionario di 1 50 parole oltre ad innu-
merevoli altre cose,
Considerando che da ogni stanza ci si
può muovere in sei direzioni, che per ogni
verbo si può avere una risposta personaliz-
zata. spostamenti di oggetti, esecuzione
fattibile solo una volta o solo in caso che si
possieda un certo oggetto o che ci si trovi in
un determinato luogo si può finalmente
pensare che non si possa fare di meglio.
Esaminiamo il modus operandi nel caso
si voglia scrivere un'avventura.
Bisogna naturalmente annotarsi tutto
ma proprio tutto dell'adventure che si ha
in mente (improvvisare davanti al compu-
ter non é cosa facile).
Dato il RUN al programma ADVEN-
TUREDITOR. l'Apple chiederà in primo
luogo il nome del gioco e il numero di
luoghi del gioco ( 1-100). Verrà allora chie-
sta la descrizione della stanza numero I.
ciò che si scriverà apparirà esattamente
nello stesso modo durante il gioco (atten-
zione a non inserire virgole pena l'input
error). si raccomanda piuttosto di non in-
serire in advenlure molto estesi descrizioni
più lunghe di 4 linee video (160 car.).
Di seguito verrà chiesto il numero della
stanza che si può raggiungere dando il co-
mando N (nord) durante il gioco e cosi via
per le altre 5 direzioni.
Quindi il computer chiederà: "Va be-
ne?". rispondendo NO l'Apple richiederà il
tutto, rispondendo SI il computer prose-
guirà a far domande.
A* = VERBO DATO.
AN* = NOME DELL' ADVENTURE.
APO = AUMENTO PUNTEGGIO RELATIVO AL VERBO.
B* = COMPLEMENTO DATO.
COSO = COMPLEMENTI DEI VERBI PROGRAMMATI.
DS = CHRS(<t>
D<A,B) = DIREZIONE B DALLA STANZA A.
ERS = MESSAGGIO DI ERRORE.
EXO = FLAG DI VERBO GIÀ' ESEGUITO.
FF. = FLAG GENERICO.
FLO = FLAG DI VERBO NON ESEGUIBILE PIU' VOLTE.
FOO = SPOSTAMENTI DI OGGETTI.
HS = STRINGA GENERICA.
1,12 = F0R-NEXT .
MESO = MESSAGGI DEI VERBI.
NO = NUMERO DEGLI OGGETTI .
NS = NUMERO DEI LUOGHI .
NV = NUMERO DEI VERBI .
ODAO = OGGETTI DA AVERE PER ESEGUIRE I VERBI.
OMO = NOMI DEGLI OGGETTI.
POO = POSIZIONI DEGLI OGGETTI.
PP = CONTATORE OGGETTI POSSEDUTI .
PRS = PRESENTAZIONE.
PUOO = LUOGHI DOVE E' POSSIBILE ESEGUIRE I VERBI.
SC = PUNTEGGIO.
SET = POSIZIONE ATTUALE DEL GIOCATORE.
STSO = DESCRIZIONI LUOGHI .
TF = FLAG DI PRESENZA PUNTEGGIO.
TN = PUNTEGGIO DA RAGGIUNGERE.
VSO = VERBI.
VPOO = COPIA DEL VETTORE POO
VSET = COPIA DI SET INIZIALE.
US = FRASE INSERITA.
X* = STRINGA GENERICA.
X2S = ■
Y = NUMERO ERRORE.
ZOO = LUOGHI DA RAGGIUNGERE ESEGUITO UN COMANDO.
118
MCmicrocomputer n. 38 - febbraio 1985
software
Advenlure Editor
Listalo I - Programma EDITOR, permeile di creare un advemure e scrive poi in un /ile di testo tulle le
informazioni necessarie al gioco.
Finiti i luoghi il calcolatore chiederà il
numero di oggetti presenti nell'adventure.
Di ogni oggetto verrà chiesto il nome (da
scrivere senza articolo) e la posizione ini-
ziale.
Successivamente si passerà ai verbi. Ci-
gni verbo presuppone un suo complemen-
to. Il dizionario massimo è di ISO parole
suddivise in 75 verbi e altrettanti comple-
menti.
Per prima cosa l'Apple chiederà il nume-
ro dei verbi, quindi di ogni verbo l'impera-
tivo e il suo complemento (sempre senza
articolo). La domanda successiva sarà ine-
rente alla risposta da dare nel caso sia pos-
sibile eseguire il comando, il default dato
premendo ENTER é "OK. ". Poi verrà
chiesto il luogo da raggiungere impartito il
comando, scrivendo 0 non ci si muovere.
Verrà chiesto in seguito lo spostamento
di oggetti da effettuare. Inserendo un nu-
mero positivo, ad esempio +5, l'oggetto
numero 5 apparirà magicamente nel luogo
dove ci si trova. Inserendo un numero ne-
gativo, ad esempio -3, l'oggetto 3 scompa-
rirà misteriosamente (in realtà la sua posi-
zione sarà data a 0. la stanza 0 è un luogo
che non c'è e quindi è utile per far sparire
oggetti o depositarli momentaneamente).
Inserendo 0 si intende che non deve av-
venire alcuno spostamento. L'amica mela
chiederà poi l'eventuale effetto sul punteg-
gio (se il gioco è basato su di esso). Sarà
successivamente chiesto il luogo dove è
possibile eseguire il comando. Lo 0 indica
che il comando è eseguibile dappertutto.
Un numero negativo, ad esempio -7. indica
che nella stanza n. 7 non potrà essere im-
partito quel comando. Apple seguiterà
chiedendo che oggetto si deve avere per
eseguire l'ordine, scrivendo 0 si intende che
non è necessario alcun oggetto. Verrà poi
chiesto se il comando è eseguibile più di
una volta, rispondere premendo S o N.
Le ultime cose chieste saranno il numero
della stanza da dove iniza il gioco e la
presentazione. Verranno quindi date le i-
struzioni relative al salvataggio su disco
dei dati. Purtroppo i dati sono molti, ma
da parte mia ho fatto di tutto per ridurre
l'ingombro su disco.
Questo programma è disponibile su di-
sco presso la redazione. Vedere l'elenco
dei programmi disponibili e le istruzio-
ni per l’acquisto a pag. 153.
MCmicrocomputer n. 38 - febbraio 1985
119
Veniamo al secondo programma:
ADVENTL1RE
Come già detto esso serve a giocare l'av-
ventura programmata usando l'edilor.
Dato il RUN verrà chiesto il nome del-
l'avventura da caricare. Caricatala, si ini-
zierà immediatamente a giocare. Per ogni
stanza verranno visualizzati i nomi degli
oggetti presenti insieme alla descrizione e
verrà atteso un comando nella parte infe-
riore del video.
Infatti, usando opportunamente le fine-
stre di testo, nella parte superiore del video
è costantemente visualizzato ciò che è pos-
sibile vedere, mentre in quella inferiore av-
viene il dialogo tra giocatore e computer.
Ci sono molti verbi assegnali "d’ufficio" e
che non hanno bisogno di essere program-
mati. essi sono:
I. INVENTARIO. N. S. E. O. SALI.
SCENDI. PRENDI. PIGLIA. POSA.
LASCIA. BUTTA. SALVA GIOCO.
PUNTEGGIO.
I verbi eseguiti per primi sono quelli pro-
grammati dall'utente, quindi nessuno vieta
di riprogrammare quelli originari. Una co-
sa molto bella e utile è che l'articolo può
esserci o non esserci e può essere di qualsia-
si lunghezza.
Si potrà quindi dire ACCENDI TOR-
CIA oppure ACCENDI LA TORCIA o
anche ACCENDI CODESTA TORCIA.
In questa versione, infatti, la prima pa-
rola viene considerata verbo e l'ultima
complemento. Questo è anche il motivo
per cui i nomi degli oggetti devono essere
dati senza l'articolo ad ADVENTUREDI-
TOR.
Ritengo ADVENTU REDITOR un pro-
gramma semplice da leggere, quindi passo
subito a commentare ADVENTU RE che
è un programma più lungo e con alcune
cose da notare. La numerazione è da 100
con passo 10. Le prime istruzioni servono
per eliminare l'effetto del MON e del
TRACE.
Le linee da 100 a 190 sono relative all'i-
nizializzazione e alla presentazione. Da
200 a 320 si stampa la descrizione della
stanza. Da 330 a 520 si accetta il comando
e si assegnano ad AS e a BS rispettivamente
il verbo e il complemento. Dalla linea 530
alla 710 c'è la routine di riconoscimento e
di esecuzione dei verbi programmati dal-
l'utente. mentre tra 720 e 1390 c'è quella
relativa ai comandi preprogrammati. La
linea 1400 segnala un eventuale errore di
battitura. A 1410 c’è la routine di morte
120
MCmicrocomputer n. 38 - febbraio 1985
MCmicrocomputer n. 38 - febbraio 1985
121
STAMPANTI Epson,
una scelta prestigiosa, senza compromessi
Epson dunque, senza
Scegliere una
stampante è facile?
C’è una sola regola, pretendere
sempre il massimo delle prestazioni,
senza compromessi : materiali e compo-
nenti di prima qualità, disegno elegan-
te, grande affidabilità, robustezza, faci-
lità e flessibilità d'impiego, prezzo ade-
guato e la garanzia di un grande costrut-
tore leader mondiale.
Così, con Epson, la scelta è facile e
sicura.
Epson il più grande costruttore al mon-
do di stampanti vi offre una gamma di
prodotti prestigiosi che soddisfano ogni
vostra necessità, Epson, una soluzione
raffinata, in esclusiva per il vostro com-
puter.
RX-BD/RXIOO
Le migliori prestazioni da stampanti,
semplici, versatili, silenziose e veloci
con 100 caratteri al secondo, 128 tipi di
caratteri selezionabili e 11 set intema-
zionali. 80 o 132 colonne. 6 diverse posi-
bilità grafiche. Tutti i tipi di carta, modu-
lo continuo, foglio singolo. Inseritori au-
tomatici di fogli singoli.
fx-bd
Indispensabile nelle applicazioni in
cui la versatilità e la qualità di stampa
sono un imperativo.
Possibilità di creare qualsiasi carat-
tere su una matrice di 11x9 punti. Memo-
ria RAM da 4 Kbyte. 256 tipi di caratteri
definibili dall'utente. 136 tipi di caratteri
a corredo. Alta velocità di stampa a 160
caratteri al secondo su 80 colonne. Ben
9 modi di stampa grafica punto a punto
selezionabili sulla stessa riga contem-
poraneamente.
Inseritori automatici di fogli singoli a sin-
gola e doppia vaschetta.
FX-lOO
Con 132 colonne e 160 ca-
ratteri al secondo, la FX-100
è la stampante ideale per
data processing e tabula-
ti, specialmente in uffi-
cio grazie anche alla
possibilità di accettare
fogli singoli e moduli
continui di qualsiasi
formato. La matrice di p
ù 11x9
fiche e
sima varietà di tipi di
256, definibili anche dall'utente e me-
morizzati nei 3 kbyte di RAM interna. La
FX-100 non teme la fatica: la testina di
Inseritori automatici di fogli singoli.
EPSON m
I Istogrammi
di Fuhrizio Pascolini - Ostia ( Roma )
Sono un ragazzo di 15 anni e desidero
proporre qucslo mio programma da usare
con il Vie 20 inespanso.
Dopo aver digitato il programma e dato
il Run. si deve attendere per alcuni secondi
durante i quali il computer carica i nuovi
caratteri grafici (da me ridefiniti) dopodi-
ché compare il menu che indirizza nella
scelta delle varie operazioni da compiere.
Per le varie opzioni vengono utilizzati i
tasti (unzione di ordine dispari e la freccet-
ta orizzontale. L'inserimento dei dati si
ottiene premendo fi; f3 permette di avere
la lista completa (sullo schermo) dei dati
inseriti che possono essere azzerati pre-
mendo la freccetta orizzontale. Infine con
f3 ed (5 si tracciano i diagrammi in vertica-
le o in orizzontale.
Le barre usate per i diagrammi non sono
continue ma vengono, per mia scelta, inter-
rotte ogni otto pixel. Se comunque si desi-
derano delle barre continue basta modifi-
care le linee 245 e 450 come segue:
245 W = W + 1 ; IF W = 8 THEN W = 0:Y = Y+1
450 W= W + 1 : IF W = 27 THEN W = 19:Y = Y + 1
Effettuando questa modifica si deve pe-
rò cambiare il numero 945 che compare
nella prima linea di programma con quello
ottenuto da:
CLR: PRINT FRE(O)
Alla fine di ogni operazione per ritorna-
re al menu principale basta premere H.
Commenti
Il nostro lettore ci propone un argomen-
to già abbastanza sfruttato, ma pensiamo
sia il caso di dedicare dello spazio al suo
programma il quale, oltre a fornirci un
esempio di definizione di caratteri partico-
lari. presenta anche un output grafico mol-
to elegante.
La prima cosa che vi raccomandiamo é
di inserire nel vostro Vie inespanso le linee
cosi come sono senza cercarvi alcuna mo-
difica affinché il contenuto dei byte liberi, a
battitura effettuata, risulti 945. Se comun-
que avete necessità di apportare delle mo-
difiche ricordatevi di sostituire al numero
945 della linea 5 il valore corrispondente al
numero effettivo di byte rimasti inutilizza-
ti.
Come già detto, il tasto fi inizializza la
5 PRINT":!" P0KE368?9,25 1FFRE' 0;>945THENGOTO700
10 DIMVC20)
30 FORN=1T0216 REfiDH : P0KE7167+N, A NE .1 PJ=CHR*<
35 RESTORE F0RN=1T0216 PERDA NEXT P0KE36869, 255
3 PPIIIt l .'£l»IMI M t~ K I I I" PRINT" :*M*I I '
45 PRINT •SWBB , Pt ,l H"P*“ HELP«.MENUV PRINT"a
50 PRINT" a"P*"Fl"Pf” INPUT URTI" PRINT" S
55 PRINT" S“P*"F3"P$” LISTR ORTI" -PRINT" a
3 PRINT "S“P*“F5"P*" RRPP. VERT 1 C RLE " PRINT" 3
T I J LJ" PRINT"
65 PRINT"a"P*"F7"Pt" RfiPP.ORIZONTRLE" PRINT"a
67 PRINT"a"P*"-"P*” CRNCELLR IrftTl" PRINT "a ”
70 F0RN=1T015 ; RERDfi ; PQKE8166+N. fi ; PQKE38S86+N - 6 NEXTN
75 GOTO600
120 PRINT" rSaRMIi NSERISt 1 DATIM" POR E 36863 . 240 FORN-1TO20IFN<10THENPRINT"«I”N
122 IFN>9THENPRINTN,
125 INPUTV<N> IFV(N)>168THENPRINT"?RED0 FROM STfiRT MAX168" : G0T0125
-0 NEXT GOTO608
200 PRINT":»" M=-l P0KE36869.255
210 FORN=0TO21 P0KE7681+N422, 15 ; POKE38401+N*22 0 NEXT
220 FORNAI T022 P0KE8164+N. 227 POKE38384+N,0 NEXT
230 PRINT"«Wr I ■ J K 1 1 MfHttWTK li K I ItifltìtìlK ' '
240 F0RN-1T028
242 F0RJ= ITOVI NJ
243 IFVCN)=0THEN250
245 U=W+ 1 I FW=8THENU=0 • PÙKE8 1 43+N-22*V , 6 Y=V+ 1
248 F0KES143-22*V+N, W P0KE38863-22*Y+N, 6
250 NEXTJ : W“-l : V“0
260 NEXTN • GOTO600
: :a print“3“ : P0KE36869, 240 • print " tsmìmmìi mwtNNHnmaiAi 1 11
310 FORN=1TO20
315 I FN C 1 0THENPR I NT " “Ni "«•”V<N>
'a IFNJ9THENPRINTN; “«-“V<N.>
5 NEXTN : GOTG600
..0 PRINT"."»" P0KE36869.255 FÙRN=0TO21 POKE8120+N .16 POKE38840»N, 0 NEXT W=18
410 FORN»0TO20 : POKE7680+22#N,231 :POKE38400+22*N.0 NEXT POKE8120. 18 POKE38840.0
430 FORN=1TO20
435 F0RJ=lT0VfN)
440 IFV<N)=0THEN465
450 W=W*1 IFW=2?THENW=19 P0KE?659+N*22+Y , 25 V=V+1
460 P0K£?659+22*N+ V . U P0KE38379+22*N+V . 6
465 NEXTJ W=18V=0
470 NEXTN GOTO600
500 FORN=1TO20 VTN)=0 NEXT -GOTO300
3 GETAT IFfi*="i"THEN120
605 IFfi*=
' 3 IFfi*=
615 IFA*=
620 IFfi$=
625 IFA*='
630 GOTO600
700 PRINT' -
710 PRINT
720 PRINT
730 PRINT
740 PRINT
THEN300
“THEN200
"THEN400
THEN35
THEN500
"CHR*< 1 4 » "»>»••! 9»l I
IIWUESTO PROGRAMMA NON GIRA CON IL COMPUTER ESPANSO. "
JJ-OVETE SPEGNERE IL VICLEVfiRE L'ESPANSIONE E RICARICARE I
ROGRAMMfi. " PRINT" MI UON LfiVÙRO ! "
flUBV -ABRI2I0 -fiSCOLINI"
,,127-i..,i.127,127
127, 127, 127, , , , , 127, 127, 127, 127
:7, 127,127, 127, 127, , , 127 - 127. 127, 127, 127, 127
127 , 127, 127, 127 . 127-127 , 127, 127, 127, 127, 127, 127
5020 DATA60-66, 153, 161 , 161 , 153,66,60
5025 BATA101, 85, 85, 119, 82,82, 98.0
5030 DAT A46 . 34 , 34 , 46 , 40 , 40 , 46 , 0 , 23 1 , 1 64 • 1 64 , 1 64 , 1 64 , 1 64 , 228 , 4
5035 DATA2, 10, 10, 10, 14,2,2,0
5040 BRTA14, 10, 10, 14, 10, 10, 14.0
5045 DfiTA46 , 40 . 40 , 46 ■ 42 . 42 • 46 • 0
5050 DATA? .4, 4. 4, 4, 4, 4, 4
5055 DATAI . 1 . 1,255.,,, ,224,160, 160. 160, 160 160,224,0
5060 D
5065 BATA128, 128, 128, 128
5070 DfiTfi224,224,224,224
5075 BATR248-248,248.248
5080 DRTA254 , 254 , 254 . 254
5085 DAT A8 , 1 60 , 9 . 1 60 , 1 34
5090 DATA140, 137, 142,13?
0. 192, 192. 192, 192, 192, 192, 192,0
0,240,240, 240 , 248 ,240,240, 240 - 0
0.252. 252 , 252 - 252 , 252 ,252,252,0
0 , 255, 255 , 255 , 255- 255 , 255 , 255, 0
147, 131, 143
MCmicrocomputer n. 38 - febbraio 1985
123
procedura di inserimento dati che possono
essere al massimo 20; se quelli a disposizio-
ne sono in numero minore basta inserire
"0" e premere Return fino a che la macchi-
na smetterà di mostrarci il punto interro-
gativo dell'Input. A questo punto potremo
avviare il tracciamento dei diagrammi sia
in verticale (partendo dal basso) che in
orizzontale (partendo da sinistra) median-
te la pressione di f5 o di 17. Sullo schermo
vengono mostrati anche gli assi quotati
(sulle ordinate o sulle ascisse a seconda del
tipo di tracciamento) con i numeretti otte-
nuti ridefinendo alcuni caratteri della mac-
china. Non aggiungiamo altro anche per-
ché sul modo di ridefinire dei caratteri da
parte dell'utente avremo modo di parlare
presto. In un riquadro riportiamo alcune
note relative alio svolgimento del pro-
gramma.
Note relative al programma
5 Pulisce e cambia schermo e
controlla la memoria: se il
Vicèespanso. manda al mes-
saggio di errore (700)
1 0 Dimensionamento della ma-
trice che contiene i venti va-
lori degli istogrammi
30 Carica nuovi caratteri grafici
35 Annullai data per arrivare al
Copyright
40-67 Stampa menu
70 Stampa Copyright
120-130 Subroutine per l'acccttazio-
ne dei dati
200-230 Stampa schermo per la rap-
presentazione verticale
240-280 Disegno degli istogrammi
300 Stampa schermo per la lista
dei dati
310-325 Lista dati
400-420 Stampa schermo per la rap-
presentazione orizzontale
430-470 Disegno degli istogrammi
500 Cancella dati
600-630 Subroutine per l'acccttazio-
ne dei tasti di comando
700-740 Stampa messaggio di errore
5000-5090 Data per i nuovi caratteri
grafici
I PRINT AT
di Francesco de Colle
Civitavecchia (RM)
Print At è un programma utility che si-
mula sul Vie l'istruzione "PRINT AT"
mancante su questo computer. Il program-
ma è talmente semplice che ritengo super-
flua qualsiasi spiegazione, anche perché ho
introdotto la linea 30 a titolo dimostrativo.
Accenno solamente al fatto che la routi-
ne viene richiamata con un Gosub 10000 e
per posizionare il cursore o una frase in
una qualunque posizione sullo schermo (è
questa la funzione di PRINT AT basta far
eseguire:
10 REM
11 REM
12 REM PRINT RT
13 REM LR LINER 30 E DI M0STRRT IVA
14 REM
15 REM
20 GOSUB 10800
30 PR I NTHH$XX$ < 2 > VY$ d 5 > " MC M I CROCOMPUTER "
9993 END
10000 DIMXX$<21>
10005 D I MW$ < 22 )
10010 HH$="3”
10015 FORKK=0TO21
10020 xx*«xx*+"M"
10025 XX$<KK)*XX$
10030 NEXT
10035 FORKK=0TO22
10040 VV$=VV$+"W"
10045 vv$c:kk>=vv$
10O50 NEXT
10055 RETURN
GOSUB 10000: PRINTHH$XX$(X)YY$(Y) 'mes-
saggio..."
dove X e Y sono le coordinate del punto da
cui si vuol fare iniziare il messaggio.
Commenti
Effettivamente il programma proposto é
molto semplice in quanto sfrutta per lo
spostamento del cursore la funzione svolta
dai tasti Crsr implementata da program-
ma. In pratica, la parola viene scritta in
posizione X + 1 e Y + 1 partendo da zero.
La routine illustrata può essere molto utile
in quei programmi in cui si ha bisogno di
mostrare dei risultati incolonnati a sinistra
o affissi in punti calcolati sullo schermo.
Il segmento proposto ci offre comunque
l'occasione per mostrarvi degli altri meto-
di. un po' più immediati, per il posiziona-
mento di scritte sullo schermo. Non entre-
remo molto in dettaglio, ma esamineremo
solo il modo in cui operare.
Il primo, forse il più sofisticato, consiste
nell'impiegare una routine del sistema ope-
rativo a cui faremo gestire la posizione di
un messaggio sullo schermo ed alla quale si
può accedere con una SYS. precisamente
con SYS 65520.
I parametri, cioè le coordinate del punto
da cui vogliamo che inizi la scritta, vengo-
no passati per mezzo dei registri X e Y ai
quali si può accedere semplicemente intro-
ducendo i valori da immagazzinare in essi
nelle locazioni decimali 78 1 e 782. Il tutto si
riduce ad una sola istruzione, che potrebbe
essere considerata in un programma come
una subroutine di posizionamento, cosi
composta:
POKE 781,X:POKE 782.Y.SYS 65520: RETURN
dove X e Y rappresentano le coordinate di
riga e di colonna. Per esempio, se vogliamo
scrivere "CIAO" in posizione ( 10,15) ba-
sterà eseguire:
10 GOSUB 100
20 PRINT "CIAO"
30 END
100 POKE781 , 10:POKE782, 1 5:SYS65520
110 RETURN
Un secondo metodo consiste nel forzare
ad un vaiorei contenuti delle locazioni 214
e 21 1 che contengono rispettivamente l'in-
dice di riga e di colonna da cui vogliamo
che inizi la scrittura sullo schermo. In altre
parole per scrivere " CIAO" a partire dalla
posizione (R.C) ( R = riga; C = colonna)
dovremo far eseguire:
POKE214.R-1:PRINT:POKE211,C:PRINT'CIAO"
Ricordate di non omettere il PRINT tra
le due Poke; inoltre ai parametri non van-
no dati valori che siano superiori al nume-
ro di righe o di colonne effettivamente di-
sponibili per evitare che succedano cose
strane.
Un terzo modo é simile al precedente,
ma ci permette di utilizzare un parametro
di colonna che va da 0 a 255 usando il
comando Tab(x). Naturalmente quando
viene superato il numero di colonne dispo-
nibili si ricomincia dalla colonna 0 della
riga immediatamente successiva. L'istru-
zione completa da dare è la seguente:
POKE214,R:PRINT:PRINTTAB(C)
Anche in questo caso non si deve supera-
re nella Poke il numero di righe effettiva-
mente disponibili.
Vogliamo come ultima cosa specificare
che con i melodi che abbiamo esposto non
si posiziona il cursore in un certo punto,
ma si ottiene di cominciare a scrivere una
parola (o una variabile) da quel punto. Per
sortire il primo effetto rimane utile la routi-
ne del nostro lettore.
124
MCmicrocomputer n. 38 - febbraio 1985
I Gestione C/C
di Marco Mastri - Ancona
Il programma Gestione C/C é un adatta-
mento al Vie 20 di quello pubblicato nel
numero 28 per il Commodore 64. Descri-
viamone brevemente lo svolgimento.
Dato il Run appare un menu e secondo
la scelta effettuata si passa alle operazioni
previste e cioè:
I Lista operazioni
2 Inserimento operazioni
3 Calcolo interessi
4 Salvataggio dati
5 Caricamento dati
6 Fine lavoro
Naturalmente la prima volta si deve ne-
cessariamente scegliere l'opzione 2che per-
mette un primo inserimento dei dati. La
data va digitata immettendo il giorno e il
mese separati dalla virgola per ogni nuova
operazione e alla richiesta "causale" biso-
gna rispondere con un massimo di dieci
caratteri. Se invece di versare abbiamo pre-
levato dobbiamo scrivere “prelievo" o
"pagamento" altrimenti il programma non
detrae l'importo dalla cifra totale.
Con l'opzione 3 si calcolano gli interessi
maturati; il calcolo viene chiuso con la da-
ta di (Ine anno. Il programma calcola an-
che se durante il periodo di giacenza dei
capitale vi sono state delle variazioni sul
tasso d'interesse.
Terminato l'inserimento dati, battendo
"4" essi vengono salvati su nastro, previo
l'inserimento del numero di conto corren-
te. A questo proposito vi ricordiamo di
prendere nota del numero segnato sul con-
tagiri per poter posizionare il nastro al mo-
mento opportuno sul punto desiderato.
L'opzione 5 serve per richiamare i dati
prima di ulteriori registrazioni e con la 6 si
termina il lavoro.
Il programma funziona egregiamente
però bisogna fare attenzione ad inserire la
percentuale di interesse al netto delle trat-
tenute ed inoltre nel resoconto di fine anno
non risultano gli oneri per le operazioni o il
costo dei blocchetti di assegni addebitati.
Per gli anni bisestili ricordate di cambia-
re i dati alla linea 50160 con i seguenti: 0,
31.60.91. 121. 152, 182.213.244.274.305,
335.
Commenti
Il programma proposto fa parte di un
pacchetto software inviato dal nostro let-
tore (di cui pubblichiamo un ulteriore pro-
gramma in queste stesse pagine) ed ha bi-
sogno di pochissime precisazioni.
Per quanto riguarda l'introduzione del
tasso di interesse, il programma ci chiederà
il valore netto di tale tasso e il periodo di
tempo a cui esso si riferisce, ad esempio
1 2% fino al 20/3, 1 1 % fino a 1 3/6 e cosi via.
Se non ci sono variazioni, basta inserire il
valore dell'interesse seguito (dopo il Re-
turn) dalla data dell'ultimo giorno dell'an-
no. Può inoltre essere utile prevedere una
routine che stampi su carta i risultati otte-
nuti.
12 REM BESTIONE C/C BANCARIO
13 REM
14 REM
40 P0KE36879.23
30 OOSUB50000
120 PRINTTMI PRELIEVI! DEVONO ESSERE SPECIFICATI CON
«WBDESTIONE C/C", "INDICE" : PRINTL*
.SCI]! LISTA OPERAZIONI
NT" «23! INSER. OPERAZIONI"
'TÌC33! CALCOLO INTERESSI
"aC43B SALVATAG0I0 DATI
•"SC5JB CARICAMENTO DATI
•“«631 FINE LAV'RO*"
— "'HO SCEGLI 4C 3"
280 GETR* IFA*<"1"ORA*>"6"GOTO280
300 ON VAL < A* > GOSUB 1 020 , 2000 .3000.4000,5000.6000
320 GOTO 120
1020 FORJ*0TOND:N*N+1 PRINT"CBLISTA OPERAZIONI N. "N
1040 PRINT" i , 1
1060 PRI NT" I DATA I"
:::s print" i 1
106? PRINT" ICAUSALE I
1070 PRINT" I 1
1075 PRINT" I IMPORTO I
PRELIEVO! 0 PAGAMENTO
'I(K) GOSUB 10000
60 PRlNT“*Mnai"TAB<10>D* PRINT PRINTTAB<10>C#CK> PRINT PRINTTABOJM*
" STATE ESEGUITE“ND+1 "OPERAZIONI"
62 PRI NT “VUOI VEDERE UN'ALTRA OPERAZIONE
65 GETR* IFR*=""THEN1 165
“ NE/T NEXT GOSUB 1 0 1 00 : N«0
1200 PR I NT "tlPl EPILOGO TOTALI" PRINTL*
1220 NN-TA GOSUB10000 PRINT"T. AVERE-"X*
1 240 NN«TD ^ GOSUB 1 0000 PRINT"T0T. DARE" " X*
1260 NN»TA-TD • GOSUB10000 ' PRINT"SALD0 »"X*
1280 GOTO10100
2000 ND“ND+ 1 : PR I NT ” 31 NGRESS0 OPERAZIONE N. "ND+r PRINTL*
2040 CH-1
0 INPUT"DATA CGG,MM)";G,M
0 VX»G+M*100
0 FORJ»0TOND : IFVX<V!4CJ>THENK*J : J"ND ■ NEXT : GOTO2300
0 NEXT K-ND
-.40 VXCK >"VX
2160 I NPUT " CAUSALE " ; C*C K )
2180 INPUT" IMPORTO", I<K>
2190 IFC*CK>- M PRELIEV0"0RC*CK>-
2200 TA-TA+ICK)
*'*0 PRINT" 3CDIP ALTRO DATO
2240 GETA* IFA*""M“THENRETURN
2260 IFAJO " D" THEN2240
'PRGAMENTO"THENTD"TD+I CIO : 1 0O»-I CIO ■ GOTO2220
MENU'"
2520 VJCCJ+l >«VXCJ> .C*CJ+1>«C*CJ) ; ICJ*1)"I
2540 NEXT G0T02 140
0 PRINT" IXALCOLO INTERESSI " PRINTL*
0 J«1 PRINT"»”
0 INPUT "INTERESSE i IN: INCJ3-IN/100
0 INPUT"FINO AL",G,M D>iCJ>-G!CCn>*G
.0 IFD7.CJX365THENJ=J*1 GOTO3060
20 PRINT "RIEPILOGO DI FINE ANNO"
I PRINTTABC5V-
3240 D"KCCVXCJ>/100>+VALCRIGHT*CSTR*CVJSCJ»,2>>
3260 I FD>DX C IO THENGOSUB3800
3280 Sfl-SA*ICJ) NN»NN*ICJ>»INCK)/365*C366-D> NEXT
0 PRINTTABC5)"-
0 NN=TA-TD+NN : GOSUB10000 : PRINT" SALDO AL
0 GOTO10100
0 DI=CINCK+l)-lNCK)>*SA*C366-DXCK»/365
3820 NN“NN+DI K«K+1 RETURN
3840 I FD2 C K > “365THENRETURN
3860 GOSUB3800 GOTO3840
4000 PR I NT "dlBALVAT AGGIO DATI" : PRINTL*
" INPUT"BMCODICE CONTO" iNF*
4060 GOSUB 1 0 1 00 : PR I NT " TT1" SP* : IFPEEKC 1 )RND16*0GOTO4100
4080 PRINT”T “
EMI SCRECORD! E PLRVI!" URITI, 16, 16
4100 0PEN1, I,2,NF*
4120 PRINT»l,NDiT*;TAiT*iTD
4 1 40 FOR J-0TOND : PR I NT# 1 , VX C J > ; T* ; C* C J> ; T* ; I <J> : NEXT
4160 CL0SE1
4188 PRINT"TREMI atST0P3! SUL REGISTRATORE" URITI , 16, 16
4200 CH=0 RETURN
5000 IFCH*1 THENSB- 1 : GOSUB6000 ■ SB"0
5020 PRINT" CBLETTURA ARCHIVIO" ■ PRINTL*
5040 NF*=" " : INPUT"*BC0DICE CONTO" INF*
5060 GOSUB10100 PRINT "TTT'SP*- IFPEEKC 13AND16-0GOTO5100
"0 pRiNT'^aaaaaaaapREni bcplavj! sul registratore" uriti, 16, 16
5100 0PEN1 , 1,0, NF*
5120 INPUT»1,ND,TA,TD
MCmicrocomputer n. 38 - febbraio 1985
125
to dello schermo sovrapponendosi alla
parte di programma appena listato.
Commenti
Il "trucchetto" proposto da Antonio
Cassatelia è interessante ed é più efficace di
tanti altri anche se con i mezzi adatti (ad
esempio una stampante) non è difficile in-
tercettare le linee protette: non è comun-
que del tutto immediato nel senso che non
basta dare OPEN 5.4:CMD5:LIST perché
le linee interessate vengano alla luce. In
ogni caso inserendo molte delle protezioni
proposte in un programma si riesce a met-
tere in difficoltà i curiosoni. Riteniamo co-
munque che sia necessaria un’ulteriore
protezione per evitare il "travaso" del pro-
gramma su cassette o dischi. Consigliamo
inoltre di utilizzare l'ultima soluzione pro-
posta non da sola, ma insieme alla prima
poiché in quest'ultimo caso viene resa più
efficace.
Forse è inutile aggiungere che premendo
i tasti indicati dal lettore insieme allo
SHIFT vedrete comparire le virgolette
(premendo il 2) e dei caratteri grafici (pre-
mendo gli altri tasti).
I ANTI LIST
di Antonio Cassatelia - Roma
Sono un assiduo lettore e vi scrivo per
proporvi la soluzione di un problema ap-
parentemente insolubile: la protezione dal
List. Da quanto pubblicato su vari numeri
della vostra rivista si deduce che qualun-
que operazione di protezione (disabilita-
zione del List con lo spostamento dei pun-
tatori ed eventuale disabilitazione del tasto
Stop) diventano inutili se prima non viene
fatto girare il programma.
Quella che io propongo è invece una
protezione immediata ANTILIST che agi-
sce ancora prima che sia dato il Run.
Provate a digitare quanto segue:
1) 0 REM
2) CTRL + RVS ON
3) tenendo ora sempre premuto il tasto
SHIFT eseguite la seguente sequenza pre-
mendo in totale cinque tasti: 2 M CRL/
HOME 2 L
4) rilasciate il tasto SHIFT e premete
Return.
Provate ora a chiedere il List e vedrete
che sorpresa. La sequenza precedente può
anche essere messa alla fine di una linea
Basic per proteggere tutto ciò che segue.
Un'alternativa al metodo appena visto
potrebbe essere quest'altra di sicuro effet-
to. Digitate nel mezzo di un programma
quanto segue:
I) 1000 REM
2) CTRL + RVS ON
3) lenendo premuto il tasto SHIFT pre-
mete uno dopo l'altro i tasti 2 M
4) rilasciale il tasto SHIFT
5) premete il tasto CLR/HOME e quin-
di Return.
Quando la linea verrà incontrata ese-
guendo un List, il listalo riprenderà dall'al-
- CALCOLO DISPERSIONE TERMICA -
30 BIS-"3"
40 PRINTBI*
100 INPUT "TEMPERATURA INTERNA “
110 I NPUT " TEMPERATURA ESTERNA "
120 INPUT "ALTEZZA AMBIENTI". AA
150 PRINTBI*
152 PRINT" IMMETTERE LA PAROLA
200 INPUT "NOME DELL'AMBIENTE "
210 I F NA*» "FINE" THENGOTO950
FINE! PER TERMINARE”
560 GOTO300
600 OOSUB4000
700 OOSUBS000
000 PT»TS+QV+QR
801 PRINTBI*
802 PRINT"TOTALE CALORE DISPERSO DAL LOCALE *
886 T1-T1+PT
888 PT-0
818 OOSUB 10000
900 OOTO150
950 PRINTBI*
955 PRINT” TEMPERATURA INTERNA »",TN
T" TEMPERATURA ESTERNA = ~
0 PRINT
965 PRINT
978 PRINT
972 PRINT
975 PRINT
976 PRINT
980 PRINT
984 PRINT
985 PRINT
986 END
1000 su:
ALTEZZA AMBIENTI»" ;AA
SCALORE TOTALE DISPERSO-
MURI E FINESTRE » "iT4
PAVIMENTI E SOFFITTI»" iT3
RICAMBI D'ARIA»" iT2
POTENZIALITÀ' DELL' IM-PI ANTO TERMICO»" . INTUÌ >
SFINITO!"
25
1007 KCC1>»2.2
8 KCC2>»1.8
9 KC<3)»1 .6
1018 PRINTBI*
1012 PRINT"R0UTINE PARETE CALCOLO DISPERSIONE CALORE"
1014 PRINT
1016 PRINTNA*
1017 PRINT ; PRINT"SE NON CI SONO ALTRI LATI DISPERDENTI
1018 OOSUB 10008
1025 PRINT"TIP0 PARETE <MM7MC/«-)
126
MCmicrocomputer n. 38 - febbraio 1985
1030 IFTP*= " THENRETURN
1040 IFTP*0“MM"ANDTP*0"MC"THENPRINT“ERRGRE SUL TIPO PARETE" GOTO 1020
1050 PRI NT "SPESSORE DELLA PARETE < 25/38/50 >" INPUTSP
. . 1 GOTO1070
1090 IFN*0THENPRI NT "ERRORE SULLO SPESSORE" OOTO1050
1100 IFTP*="MM"THENGOTO1120
0 K=KC<N> GOTO 1200
1120 K=KM<N>
1200 PRINT-'ESPOSIZIONE ■.NORD/SUD/EST/OVEST»" INPUTES*
T" LUNGHEZZA PARETE IN UT " INPUTLP
1220 IFES*=“N0RD"THENP=1.2 G0T01282
1240 1FES**”0VEST"THENP=1 . 1 GGT01282
1260 I FE 3* = " EST " THENP= 1 . 1 5 G0T0 1 282
1280 P=1
1288 PRINT"FATTORE MOLTIPLICATIVO PER L'ESPOSIZIONE P
1292 PRI NT "LUNGHEZZA PARETE MT.= ",LP
1294 OOSUB 10080
—0 RETURN
2080 PRINTBI*
2820 FRI NT "ROUTINE FINESTRA CALCOLO DISPERSIONE DEL
2030 PRI NT
2040 PRINTNA*
2100 AF=0
2150 PP1NT”AREA DELLA FINESTRA IN MT. IMM
B PER TERMINARE" INPUT AI
2200 I FA I =0THENGOTO2300
2250 AF=AF*AI
2268 GQTO2150
2300 QF=AF*5*P*< TN-TE)
2306 PRI NT “AREA TOTALE FINESTRE MQ.= ’.AF
2310 PRI NT "CALORE DISPERSO DALLE FINESTRE ' CALORI E.’QRA>=",QF
2315 GOSUB 10000
2350 RETURN
3000 SR=CLP*AA)-RF
3150 QM=SR*K*P*( TN-TE)
3280 QP=QM*QF
3201 PRI NT "CALORE DISPERSO DAL MURO ‘.CALORI E/ORA; =",QM
3202 PRINT'PERDITA DI CALORE (MU-RO+FI DESTRE CALORIE/ORAj=" ,QP
3204 T4=T4*QP
3240 GOSUB 10008
3250 RETURN
4080 PRINTBI*
4020 PRINT "ROUTINE PAVIMENTO CALCOLO DISPERSIONE CALORE"
4030 PRINT
4040 PRINTNA*
4100 QV=0
4110 AT-0
4112 PR1NT"N.B. IN QUALUNQUE CASO VA IMMESSO IL NUMERO DI ZONA IN CUI"
4113 PRINT "E STATO SUDDIVISO IL PAVIMENTO"
4115 PRINT" INIZIANDO DHL NUMERO PIU ALTO ES. UNA CAMERA DIVISA IN 3 ZONE DIGIT
ARE 3 2 1"
4168 PRINT"NUMERO DI ZONA •. IMMET-TERE - PER TERMINARE)" INPUTNU*
4170 I FNU*=" THENRETURN
4200 INPUT "PRIMO LATO PAVIMENTO", LI
4210 PRINT" SECONDO LATO PAVIMENTO" INPUTL2
4250 A1»L1*L2
4260 AT=HT»A1
4261 PRINT" INSERIRE UNO DEI SE-GUENT I NUMERI "
4262 PRINT" 1 -PAVIMENTO E TETTO NON DISSIPANO CALORE
4263 PRINT"2*DISSIPA IL PAVIMENTO
4264 PRINT"3=DISSTPA IL TETTO
4265 PR I NT "4*D ISSI PANO ENTRAMBI
4266 PRINT" IMMETTERE OPZIONE SCELTA" INPUTC
4267 I FC= 1 ANDVAL <NU*)=1 THENRETURN
4275 ONCGOTO4300,4350, 4400, 4450
4380 GOSUB5000 GOTO4160
4350 QV=AT*1*<TN-TE)
4351 PRINT PRI NT “ALTRE DISPERSIONI"
4352 PRI NT "CALORE DISPERSO ATTRA-VERSO IL PAVIMENTO C CALORI E/ORA>=" , QV
4354 T3=T3+QV
4356 GOSUB 10000
4360 GOTO4160
4480 Q7«AT*2* (TN-TE )
4401 PRINT PRINT" ALTRE DISPERSIONI"
4402 PRI NT "CALORE DISPERSO ATTRA-VERSO IL TETTO (CALO-RI E/ORA )=",QV
4450 QV-HT*3* (TN-TE >
4451 PRINT PRINT"ALTRE DISPERSIONI"
' 4452 PRINT "CALORE DISPERSO ATTRAVERSO TETTO E
4460 GOTO4160
4500 RETURN
5008 QR=AT*AA*.3»‘ TN-TE)
5016 PRI NT "CALORE DISPERSO DURANTE :
PAVIMENTO (CALORI E. ORA) = " ,
RICAMBI D'ARIA < CALOR I E/ORA )«" ;QR
5019 G
5020 RETURN
10000 PRI NT “PREMI UN TASTO”
10010 GETR* IFR*=" "THEN10010
10020 RETURN
■ Dispersione termica
di Marco Mastri - Ancona
Scopo del programma è di calcolare le
superfici radianti e la potenza del bruciato-
re per un'abitazione.
Dopo il Run. per prima cosa vengono
chieste la temperatura interna che si vuol
mantenere e quella esterna mediamente
prevista: poi bisognerà specificare se la ca-
sa è costruita in mattoni (MM)o in cemen-
to (MC). Per agire più speditamente è forse
il caso di avere sotto gli occhi una piantina
quotala deM'appartamento; infatti lato do-
po lato, stanza dopo stanza il programma
chiede le misure delle pareti, le aree delle
finestre e porte finestre, l'esposizione (bat-
tere l'intera parola, p.es. Nord). Quando
viene chiesto il numero di zone in cui è
stato diviso un determinato locale ci si rife-
risce alle aree misurate sopra il pavimento
(vedi figura I ).
Al termine delle domande viene visualiz-
zato il risultato e cioè la potenza termica
prevista per mantenere la temperatura ri-
chiesta, a cui è buona norma aggiungere un
ulteriore 10%. Se si installa la caldaia in
cucina o in un altro ambiente abitato si
deve tenere conto che anch'essa è fonte di
calore. Le pareti, i soffitti ed i pavimenti
che comunicano con altri appartamenti o
con le scale interne al palazzo si consider-
rano non disperdenti.
I Macchina del tempo
di Marco Lenci - Corinaldo < AN )
Vi invio questo lavoro con la speranza di
vederlo pubblicato nella rubrica del soft-
ware Vie 20. Si tratta della traduzione per il
Vie + 8K dell'adventure "La macchina del
tempo ". Non mi dilungo sull'uso e la de-
scrizione del programma dato che di esso si
è ampiamente parlato nei numeri 27.29.31
e 34 di MC. C'è invece da dire qualcosa
sulla traduzione dallo Spectrum al Vie.
Alla riga 31 ho ripristinalo l'originale
On Set Gosub 1.1 030, ...com'era nella ver-
sione originale per il Texas. Ho poi sosti-
tuito al Beep. 1 ,20 la routine 9 1 00 che gene-
MCmicrocomputer n. 38 - febbraio 1985
127
128
MCmicrocomputer n. 38 - febbraio 1985
software
2 5
g £
jL»j
Ì||
g M
Mig 0 -
ISsItg;
sili
SL SKL
Kt? 99=
£8
J
8wS>
li
r§gr£§JLÌB$s
- ■"•“.osgsgsr •
Il si 1
a- sa _
: 8|||^
. |£
li
!#
ili
I
1 siisi
CL 8ìij£ il
i, siili
S?»t* '
8»
il
58
liilllllilllllllilSIlllilillllIMmKilgilllillillll
s
&
1
S
SÉ
j % t “ I t
S= 5
gl
il
p
%
oo
S. ;
É
&J
|E§5
EJSS
- ¥ h'
ge£„
“Pii
II
i il
SS “8 :E£:
i" i! -■
gl %
I s -|É
g l m
* 1 Iti
1 !i 4i
k #|' Pi
I* «Il
ù$ gl gtìts
oo So ir^z
5* =*£2-
.5 sfcssi?.
Sa: oS u, ogl «S =“ fi'JSgpfoS cTuì -gS^gj = ° £ J?
s:£zè" 5 s z £ 8g ®giE“|Ìii oz i£“Ì s P «8 eli
££ z è. 5 s z £ 8£ *gi£“f8§i oz i£“§
il55MSsSfiéMS45ÌS5Ìstl5Ş5ÌS3Ì553&£§Ì£§§È
!S5S3|S||||s||§§8!|!||||8»||||§||5||||||||i|||
s |
s Ì
SS
2£S
sysh
zpòisb
■ - "
zSgtoot
ra un suono, forse nemmeno troppo grade-
vole, ed ho quindi sostituito la vecchia rou-
tine che serviva per allungare la stringa BS
con degli spazi fino al !4mo carattere, dato
che nel Vie non si presentava nessun incon-
veniente di Input. Infine c'è da segnalare
una differenza tra lo Spectrum ed il Vie che
mi ha creato qualche fastidio e che prima
non conoscevo assolutamente. Il valore
numerico di una condizione logica verifi-
cata è 1 per lo Spectrum e — I per il Vie: mi
spiego meglio. Digitando Lei A = l: Print
(A = l) il computer risponderà 0 e 1 se è
uno Spectrum e 0 e —1 se si tratta di un
Vie. A causa di questo fatto ho dovuto
modificare la linea 504.
Per concludere, è stato aggiunto qualche
altro comando e cioè: Aiutami, Sfama, Di-
struggi.
Spero con questo programma di far con-
tenti tutti i Vichinghi che come me deside-
ravano un adventure, dato che per questo
computer non ne sono apparsi molti sulle
riviste specializzate.
Commenti
Per chi non è al corrente degli avveni-
menti precedenti forniamo qualche ulte-
riore dettaglio. Per cominciare, la “Mac-
china del tempo” è un gioco di Fabio
Schiattatila pubblicato per il Texas TI/99
sul numero 27 di MC e successivamente
adattato da Rino Rugacci allo Spectrum.
Quella che ci propone il nostro lettore è
la versione per il Vie 20.
Il gioco consiste nel ritornare nella no-
stra epoca da un'epoca passata per mezzo
di una macchina del tempo che però ha
esaurito la propria energia. Dovremo allo-
ra metterci alla ricerca della fonte di ener-
gia (rappresentata da alcune batterie) af-
frontando i vari pericoli nell'ambiente che
ci circonda. Durante il percorso raccoglie-
remo alcuni oggetti che potranno esserci
utili per superare qualche problema, come
l'apertura di una porta per mezzo di una
chiave prelevata durante il percorso. Natu-
ralmente non potendo portare con noi tutti
gli oggetti trovati dovremo effettuare delle
scelte.
I verbi riconosciuti dal programma so-
no:
prendi rompi
piglia accendi
posa leggi
lascia sblocca
butta inserisci
apri aiutami
nutrì sfama
alimenta distruggi
nuota
Le frasi riconosciute sono composte da
un verbo, un articolo e dal nome di un
oggetto. Per finire, la parola “inventario”
fornisce l'elenco degli oggetti che possedia-
mo. MC
MCmicrocomputer n. 38 - febbraio 1985
129
Dal 1 9 al 23 aprile
alla Fiera di Milano
oltre centomila persone
visiteranno il
Salone dell'Informatica.
In gran parte saranno
utenti finali alla ricerca
di soluzioni complete.
Molti potrebbero trovarle
nel vostro stand
Perché non esserci?
SALONE
DELL’
i
« PROFESSIONAL »
l'informatica, la telematica
l’office automation per l'azienda,
aer il professionista, il commerciane
gli Enti pubblici, le banche, ecc.
1
NOVITÀ 1 985: DUE AREE ESPOSITIVE
1
AREA « COMPUTER SHOW »
il nuovo grande appuntamento
con l'informatica giovane.
La mostra nella mostra
interamente dedicata a:
f
A
^ hobby, didattica, ^
videogiochi
C Segreteria: E.P.I. - ENTE PROMOZIONE INFORMATICA
Via Marochetti. 27 - 20139 MILANO - Tel. (02) 5693973-5398267
1 Fiera di Milano
>19-23 Aprile 1985
A
cura di Leo Sorge
programma in sé. Abbiamo aggiunto solo
una POKE 650.128 in linea 100. per avere
la ripetizione automatica su tutti i tasti:
inoltre riportiamo a parte le linee 1110-
1240 e 1250-1340 con le opportune corre-
zioni per usare il disco anziché il registrato-
re (ovviamente tramite lìle sequenziali). Il
lesto del lettore, anche se particolarmente
succinto, è del tutto chiaro, e spiega quasi
tutto. Aggiungiamo un paio di cose emerse
durante la prova, che è bene sapere.
La prima precisazione riguarda il Dele-
te. Il tasto Inst Del conserva la sua prima-
ria funzione, che è quella di cancellare il
Anche questo mese, grazie agli innumere-
voli lavori < lei lettori, abbiamo scelto parec-
chie cosine. Compito faticoso, perchè si trat-
ta di decidere tra tanti programmi, tutti più
che meritevoli di pubblicazione. A tal propo-
sito. anche senza far nomi, vorrei rincuorare
alcuni lettori che ci hanno inviato lavori ci-
clopici (studio del sistema solare : studio dei
sistemi nel tempo e nella frequenza; utility
varie l . i quali pur essendo tra i più grudii i
— attendono spazio a sé. non polendo mono-
polizzare una puntata del software ma ne-
cessitando a loro volta di 6. R e anche più
pagine. Troveranno (prima o poi...) una
collocazione, come quella data al program-
ma sull' RTTY pubblicato su MC n. 30.
Ma veniamo ai programmi di questo me-
se. L'apertura viene concessa a I wordpro-
cessor di Ermanno Mantovani, che pur a-
vendo lavoralo esclusivamente in Basic ci
offre un comodo mezzo digestione dei nostri
testi. Seguami poi Helicopt. un gioco dalla
grafica eccellente, realizzato da Roberto
Lombardelli , e due utili routine, delle quali
una ruota di 90 gradi ( a destra e a sinistra ) i
caratteri Commodore, mentre l'altra abilita
Tautorun da disco con poche righe in Basic.
Anche se in questo numero non c è nulla in
linguaggio macchina, contiamo di tornare
sull'argomento fin dal prossimo mese.
I Wordprocessor
di Ermanno Mantovani
S. Antonio in M. Novi ( MOl
Dobbiamo riconoscere che questo sem-
plice editor di lesti ci è piaciuto molto, e per
più di un motivo. Innanzitutto dimostra
che il Basic consente parecchie libertà, non
sempre da pagare con listati macchinosi ed
esecuzioni rallentate: poi perché l'algorit-
mo è facilmente comprensibile, e dunque
modificabile: infine perché non fa ricorso a
nessun trucco proprio dello specifico com-
puter. permettendo un'agevole digitazione
ai possessori del 64 e una quasi immediata
trascrizione su altri home computer.
Passiamo adesso ad alcune brevi note al
Questo programma è disponibile su
cassetta presso la redazione. Vedere l'e-
lenco dei programmi disponibili e le
istruzioni per l'acquisto a pag. 153
100 PRINTCHR$<14>,CHRt<8> : P0KE 650,128
3 REM
120 REM
130 REM * WORD PROCESSOR •
140 REM * *
150 REM * COMMODORE 64 *
160 REM * *
170 REM * BV MANTOVANI ERMANNO *
180 REM * *
230 REM **************************
240 POKE53280, 0 : P0KE53281 , 0 : PRI NT "33"
250 DIMX*<2000> : B$=" " FGRJ=1TO80 • B*=B*+" " : NEXTJ
260 FORI=0TO3
270 FORJ=0TO9
280 Dt=D*+RIGHT*(STR*(J>.n
290 NEXTJ, I : J=0
300 REM
310 REM INZIO DELL'EDITOR
320 REM
330 PRI NT" ^''SPC C 1 0 > " 3" LEFTt < D* - 30 )
340 I=0-PRINTRIGHT*(B*+STR*(J)+" ",10>;"S1",
350 GET A* : I F A*» " " THEN350
360 A=ASC<A$>
370 REM RI CONSCI MENTO CARATTERE DIGITATO
380 I F A=20THENGOSUB670 : GOTO350
390 IFA=13THEN530
400 I F A=95THEN 1000
410 I FA= 1 33THEN750
420 I FA= 1 34THEN 1 880
430 IFA=135THEN1580
440 IFA=136THEN1730
450 I FAC320R < H> 1 27AND A< 1 60 > THEN350
460 IFA=34THEN350
470 I F I >79THEN350
480 X*<J)=X*<J>+A*: 1=1+1
490 PRI NT 11 II" A* "SI
500 IFI=20ORI=40ORI=60THEN900
510 GOTO350
520 REM ACCETTAZIONE DI UNA RIGA
530 IF((FRE<0)-<FRE<0K0)*65536»100; AND <J<2000>THEN560
540 PRINT" NON C'E PIU' POSTO"
550 GOTO340
560 PRINT" n" SPC < 1 0 > " 3" LEFT* < Dt , 30 >
570 IFJ>19THENK=J-19 : GOTO590
3 F0RM=KT0J
3 PRINTRIGHT*<B»+STR*<M>+'
3 NEXTM
3 J=J+1
3 GOTO340
1 , 103LEFT* <X*(M) , 29)
650 REM CANCELLAZIONE DI UN CARATTERE
660 REM
670 I F I< 1 THENRETURN
680 PRINT" wia 8 ll"i
690 1=1-1
700 X*<J)=LEFT*<X*(J),I>
710 RETURN
720 REM
738 REM PROCEDURA CHE SIMULA IL LIST
740 REM
750 IFI50THEN350
760 N$="" PRINT"ILIST a B"i
770 GETA* : IFA*=" "THEN770
780 IFA*=CHR*(13>THEN840
790 A=VAL<A*)
800 I FA<0ORA>9THEN770
810 PRI NT "II" A*" a
820 N*=N*+A*
830 GOTO 770
840 PRINT"II ":N=VAL<N*> IFN>=JTHENPRINT"ERRORE N. RIGHE=" , < J-l
MCmicrocomputer n. 38 - febbraio 1985
131
carattere all'immediata sinistra del curso-
re. ma lo fa in modo "locale": poiché una
linea del wp è di 80 caratteri, ma il 64 ne
può mostrare solo 40 per volta, è bene
muoversi solo sulla parte di riga mostrata
al momento della correzione.
La seconda cosa si riferisce alla corretta
procedura da seguire per inserire delle linee
di testo. Il tasto F7, infatti, mette una nuo-
va linea tra due già esistenti, ma la mette
vuota: bisogna poi usare la funzione di
correzione, abilitata da F3, e sostituire la
stringa nulla con la nostra nuova riga.
Va ancora detto che ci si può trovare in
difficoltà con un wordprocessor che non
va a capo da solo. Chi avesse grossi proble-
mi può inserire una semplice routine di
segnalazione che (ad esempio) emetta un
beep per ogni carattere dalla colonna 70 in
poi. La parola, ora, al nostro lettore.
Penso che ormai il wp sia uno strumento
utile e necessario per scrivere testi. Il suo
uso è noto: oltre ad avere le doti di una
macchina da scrivere elettrica, con esso si
possono correggere i testi, archiviarli su un
supporto magnetico e naturalmente stam-
pare un testo tutte le volte che si vuole.
Questo wp non ha tutti i pregi di quelli in
commercio: ma essendo scritto interamen-
te in Basic usa poco spazio, permettendo di
memorizzare testi fino a 30000 caratteri.
L'uso del programma
Appena dato il run appare lo schermo
con in alto dei numeri indicanti la colonna
e il cursore all'inizio di riga 0. In quel mo-
mento siamo nel modo editor e possiamo
cominciare a battere il nostro testo.
IN PUT DA TAPE
HKHJN TASTO PER CONT. "
OUTPUT SU TAPE
JttOHJN TASTO PER CONT. "
•850 PRINT N : PRINTLEFT*<X*(NI ,40) : PR1NTMID*(X*<N) ,41 , 40)
860 GOTO340
870 REM
880 REM SCROLLINO DEL TESTO DA DESTRA A SINISTRA DI 20 CARATTERI
890 REM
900 IFJ>20THENK=J-21 : QOTO930
910 K=0
920 I F I =60THENPRINT “ 38" LEFT * ( D* , 30 ) " M" : GOTO940
930 PRINT"na"D*"S"
940 IFJ=0THEN980
950 F0RM=KT0J-1
960 PP.INTMID*<X*<M>, 1-10,39)
970 NEXTM
980 PRINTRIGHT*<X*<J), 11 > ; "»
990 GOTO350
1000 print " rama menu' «but
1010 PRINT" C13 CARICA TESTO M"
1020 PRINT" C23 SALVA TESTO »"
1030 PRINT" C33 STAMPA TESTO» "
1040 PRINT" [41 NUOVO TESTO» "
1050 PRINT" C5I EDITOR »"
1060 PRINT" C6I FINE»"
1070 GETA*
, 1030 A=VRL<A*) IFA<1ORA>6THEN1070
1090 0NAG0T01 120, 1260, 1370, 1480, 1530, 2380
1100 GOTO1070
1110 REM
1120 PRINT'TJSMIM CARICA TESTO DA NASTRO
1130 PRINT "PREPARARE IL NASTRO
1140 GETA*: IFA*=""THEN1 140
1150 INPUT” TITOLO" ;T*
1160 OPEN1, 1,0, T*
1170 INPUT# l.J
1180 FORI=0TOJ-1
1190 GETttl , A* : X*< I )=X*< I )+A*
1200 IFAtOCHRtC 13ITHEN1 190
1210 X*< I >=LEFT*(X*< I > , LEN(X*< I) )-l )
1220 NEXTI
1230 CL0SE1
1240 GOTO1000
1250 REM
1266 print" riamo» salva un testo su nastro
1270 PRINT "PREPARARE IL NASTRO
1280 GETA*: IFA*=""THEN1280
1290 INPUT" TITOLO" ;T*
1300 0PEN1, 1, 1,T*
1310 PRINT#1, J
1320 FORI=0TOJ-1
1330 PRINT#1,X*<I>
1340 NEXTI
1350 CL0SE1 : GOTO1000
1360 REM STAMPA DEL TESTO
1370 PRINT"BOOOflOOfilIOOO HAI ACCESO LA STAMPANTE <S/N>"
1380 GETA* : IFR*="S“THEN1410
1398 IFA*="N"THEN1370
1400 GOTO 1380
1410 0PEN1,4,7
1420 FORK=0TOJ
1430 PRINT#1,X*<K>
1440 NEXTK
1450 CL0SE1
1460 GOTO 1000
1470 REM NUOVO TESTO
1480 PRINT" « MO»CgCaaCSEI SICURO DI VOLERE CANCELLARE IL TESTO"
1490 GETA*: IFA*=“S"THEN1520
1500 I F A*= " N " THEN 1000
1510 GOTO 1490
1520 RUN
10 J=J-l:I=0
1540 GOTO530
1550 REM
1560 REM CANCELLAZIONE DI UNA RIGA
4570 REM
1580 IFI>0THEN350
1590 N*="":PRINT"ICANCELLA LA RIGA 3 1";
1600 GETA*: IFA** 11 "THEN1600
1610 IFA*=CHR*< 13ITHEN1670
1620 A=VAL<A*)
1630 I F A<0ORA>9THEN 1 600
1640 PRINT "II" A* “3 H"i
1650 N*=N*+R*
1660 GOTO1600
1670 PRINT "Il “ : N=VAL<N*> : IFN>=JTHENPRINT“ERR0RE N.RI0HE=“; <J-1) GOTO340
1680 F0RI=NT0J-2:X*<I>=X*<I+1) NEXT
1690 X*< J-l >=" " : J=J-2 : GOTO530
1700 REM
1710 REM INSERIMENTO DI UNA RIGA
1720 REM
1730 IFI>0THEN350
1740 N*=" " : PRINT"IIINSERISCI IN LINEA a
1 750 GET A* : 1 F A*= "" THEN 1 750
1760 IFA*=CHR*< 13ITHEN1820
132
MCmicrocomputer n. 38 - febbraio 1985
1770 fl=VAL<A*)
1780 I Ffl<0ORA>9THEN 1 750
1790 print "ir a* "3 r;
1800 N*=N*+A$
1810 GOTO 1750
1820 PRINT"II " : N=VAL<N») : IFN>=JTHENPRI NT "ERRORE N. RIGHE=" , < J-l ) GOTO340
1830 FOR I = JT ON+ 1 STEP- 1 X$(I)=X*< 1-1 ; : NEXT X*(N)=" 11
1840 GOTO530
3 REM SOSTITUZIONE DI UNA STRI NCR
ALL'INTERNO DEL TESTO
1890
1900
1910
S*=" " : N*=" “ • SS*=" " : IFI>0THEN350
PRINT"IBOSTITUISCI IN LINER 3 S".
GETR* : IFR*=" "THEN1900
IFfl*=CHR*<13)THEN1970
A-VALCA»)
I FR<0ORfl>9THEN 1 900
PRINT"irfìS” 3
N»=N*+A*
GOTO 1900
PRINT"II " N=VRL(N*1 I FN>= JTHENPR I NT " ERRORE N.RIGHE=" . < J-l i GOTO340
I =0 : PR I NTSPC < 1 0) "Lfl STRINGR 3 .
GETA* IFfl*=" "THEN 1990
A=ASC<A*)
IFfi=13THEN21 10
I FR=20THENGOSUB2070 GOTO1990
I FR<320R < fi> 1 27RNDR< 1 60) THEN 1 990
IFI>79THEN1990
; GOTO 1990
2090
2100
2110
2120
2130
2140
2150
2160
2170
2180
2190
2200
2210
2220
2230
2240
2250
2260
2270
2280
.2290
2300
2310
2320
2330
2340
2350
2360
2370
2380
2390
S*=S*+R*: 1=1+1
PRINT"ir
PRINT"!
1=1-1
S*=LEFT*(S*,I)
RETURN
SS*=S* ; S*=" " • 1=0 ■ PRINT"!
GETR* IFR*=“ "THEN2120
• PRINTSPC<10)"CON Lfl STRINGA 3
IFA=13THEN2200
I Ffl=20THENGOSUB2070 GOTO2120
IFfl<32OR<fl>127RNDfi<160)THEN2120
IFI>79THEN2120
S*=S*+A» 1=1+1
PRINT“H"At" 3 GOTO2120
PRINT "Il
FF=0 : FORI=lTOLEN<X*(N))
XX*=MID* <X*<N) , I . LEN<SS*) )
IFXX*=SS*THENGOSUB2280
NEXTI
IFFF=1THENJ=J-1 ■ GOTO560
PRINT" ERRORE STRINGA NON TROVATA"
GOTO340
LL*=LEFT*<X*<N>, 1-1) RR*=RIGHTJ(X*<N).LEN(X*<N))-I-LEN(SS*>+1
X*<N)=LL*+S*+RR*
FF=1 RETURN
EEEEE N N DDDD
GETR*: IFA*="S"THEN2420
I Ffì*= " N " THEN 1 080
GOTO 2390
SICURO DI VOLERE SPEGNERE (S/N)"
1190
1200
1210
1220
1230
1240
1250
1260
1290
1300
1310
1320
1330
1340
PRINT"na»M« CARICA TESTO DA DISCO
PRINT "PREPARARE IL DISCO
GETRf IFA*=" "THEN1140
INPUT" TITOLO", Ti
0PEN2,S.2.Ti+".S,R"
INPUT#2,J
FORI=0TOJ-1
GETK2, A* • Xi<I )=X*< I ) +A*
IFAtOCHR*(13)THENl 190
XKI )=LEFTt(Xi< I ) ,LEN(Xi( I ; )-l )
NEXTI
CL0SE2
REM
FF:INT"^ai!l(W SALVA UN TESTO SU DISCO
PRINT" PREPARARE IL DISCO
GETAi : IFR$=" "THEN 1280
INPUT" TITOLO". T*
0PEN2.8. 2.TÌ+".S.U“
PRINT#2. J
FORI=0TOJ-1
PRINT#2.XÌ<I>
NEXTI
INPUT DA DISCO
WMJN TASTO PER CONT. "
OUTPUT SU DISCO
««Mal"
H«MJN TASTO PER CONT.
COMMODORE 6
Attraverso il tasto "«-“si passa al menu
il quale permette di scegliere 6 procedure,
che sono:
1 - Carica un testo già digitato da na-
stro
2 - Salva il testo in memoria sul nastro
3 - Stampa il testo su una stampante
seriale IMPS801. GPIOOVC. ecc.]
4 - Cancella il testo in memoria
5 - Si ritorna al modo editor
6 - Uscita per fine programma
Nel modo editor ci sono altri 7 comandi
azionati dai seguenti tasti:
«- Si salta al menu
inst/del Cancella il carattere precedente
il cursore
return Memorizza una riga
fi Lista una riga del testo
G Corregge una riga
f5 Cancella una riga
17 Inserisce una riga
Analisi del listato
-290 inizializzazione variabili.
300-340 Preparazione dello schermo.
350-510 Acquisizione dei caratteri e ri-
conoscimento dei tasti chiave.
520-630 Acquisizione di una riga di te-
sto. Viene aggiornato l'indice di riga, stam-
pa il numero della nuova riga e se necessa-
rio effettua lo scroll.
640-710 Cancellazione dell'ultimo ca-
rattere digitato attraverso il tasto [del],
720-860 Routine del lisi: visualizza una
riga di testo su 2 righe di schermo.
870-990 Routine che provvede a spo-
stare la finestra visualizzata ogni volta che
viene superata la colonna 20 o 40 o 60.
1000-1100 Presentazione del menu e ri-
conoscimento della scelta fatta.
1110-1240 Caricamento di un testo da
nastro. Viene effettuato per mezzo del pe-
rché altrimenti non si potrebbe mettere nel
testo
1250-1350 Salvataggio di un testo sul
1360-1460 Stampa del testo.
1470-1520 Nuovo testo.
1550-1690 Cancellazione di una riga e
compattazione del testo.
1700-1840 Inserimento di una riga vuo-
ta.
1850-2300 Routine di sostituzione. Que-
sta routine permette di sostituire una strin-
ga all'Interno di una riga con un’altra. Ap-
pena pigiato il tasto [G] compare sullo
schermo la scritta “sostituisci in linea": a
questo punto dovremo digitare il numero
di riga. Una volta battuto il return, se il
numero battuto è compatibile con il nume-
ro di righe del testo, apparirà la scritta "la
stringa" e dovremo digitare la stringa che
vogliamo correggere, poi apparirà la scrit-
ta “con la stringa" e qui dovremo inserire
la stringa corretta. Il 64 poi provvederà a
cercare la stringa indicata e a sostituirla
con l'altra.
MCmicrocomputer n. 38 - febbraio 1985
133
sostituisci in riga I
la stringa o
con la stringa a
riga I "casa"
2310-2420 Fine programma.
Elenco delle principali variabili
D$ = Stringa contenente i numeri da 0
a 9 per 4 volle.
XS = Vettore alfanumerico che contie-
ne il testo.
BS = Stringa contenente 80 blanck.
J = Indice di riga del testo.
I = Indice di colonna del cursore.
A = Codice del carattere digitato.
AS = Carattere digitato.
I scriviamo in verticale
di Vittorio Cian i - Firenze
Non c'è dubbio che il Basic sia lento; in
alcuni casi la lentezza fa davvero perdere la
pazienza: cosi, allo scopo di velocizzare i
miei programmi, ho deciso di imparare il
linguaggio macchina del 64. Dopo aver
letto la serie di articoli che MC ha dedicato
all* Assembler (a firma di Valter Di Dio.
ndr) mi sono procurato un monitor e ho
realizzato questo programma, che consen-
te di scrivere verticalmente sia in modo
ascendente che discendente. Anche se il
nome del programma è di per sé sufficiente
ad illustrarne le funzioni, non sarà male
spendere qualche parola in più sulle moda-
lità d'uso.
Se si vuol scrivere in senso discendente si
dovrà dare il Run al programma, quindi
digitare
POKE 2.0: SYS 49152
mentre se si vuol scrivere in senso contrario
bisognerà digitare
POKE 2.1 SYS 49152
In questo modo saranno disponibili sia
il set di maiuscole normali che quello ruo-
tato nel senso scelto. Va notato che il nuo-
vo set viene memorizzalo in sostituzione
dei caratteri in reverse. quindi per utilizzar-
lo bisognerà prima impostare il Reverse
On. che si abilita premendo contempora-
neamente il tasto CTRL e il 9 (per disabili-
tare premere CTRL e 0).
Per tornare al solito set di caratteri in
campo inverso, oltre all'usuale Run
Stop Rcslore. potrete usare una
POKE 53272. 21
Per ritornare ai caratteri in Ram. ovvero
a quelli ruotati, o rifate la
SYS 49152
oppure digitate
POKE 53272. { PEEK(53272) AND240) + 12
Naturalmente a questo punto il pro-
gramma Basic non serve più. perché la rou-
tine in LIVI è già caricata e non si cancella
né con il Run Stop: Restore. né con la SYS
64738. e neppure viene disturbalo dai pro-
ci.,,, un, in Basic.
0 REM limi un
1 REM t ROTAZIONE DI 90 GR «
2 REM « DI 128 CARATTERI «
3 REM » PER COMMODORE 64 «
4 REM I DI VITTORIO CIACCI «
8 rem aiittttiiKtmittttii
9 :
10 DATA1S9. 48, 133,32. 133.36,169.234,43. 14,220, 141 . 14, 220. 169, 231 . 37, 1
1 1 DATA133, 1.160,0.132.230. 132.232. 169.208. 133. 231 . 169.48. 133,233, 177,230
12 DATA143. 232. 200. 208.249. 230. 231. 230, 233. 163, 233-, 201, 32. 208, 239. 169. 0.143
13 DATA232. 200. 208, 231, 230. 233. 166, 233. 224. 36. 208. 243, 169, 48, 141, 134, 192. 141
14 DATAI 61 ,192,141,164,192,169.52.141.170,192,141,173,192. 169,0. 197,2,208
13 DAT AZI .141,138.192.169,128,141.138.192,169.74,141.140,192,169,30.141,132
16 DATA192, 76, 132. 192, 169. 127, 141,138. 192, 169.1,141. 138,192, 169, 10, 141,140
17 DATA192, 169,94. 141 , 152. 192. 162.0, 134,249.216, 169, 126.72.74,208.232. 104
18 DATAI 60,0, 133,2, 169.0, 133,248.30,0,48, 144. 17, 169.0. 123,0. 4E
19 DATA! 37. 0.48, 163. 2, 24, 121 , 0. 32. 133.0.32.200,230.248, 163.248,201
20 DATAB.208.223. 138,24. 103,8, 170.192,0.208.212.230.249,166.249,224,8
21 DATA208. 199.238, 134, 192,238, 161 . 192,238, 164. 192.238.170, 192. 23B. 173, 192. 173
22 DATAI 73 . 1 92 , 20 1 , 36 , 208 . 1 66 , 1 62 . 8 . 1 69 . 233 , 1 37 , 233 , 32 . 202 . 20B , 230 . 1 69 . 4
23 DATA 3.1,133.1.169.1.13,14,220,141,14,220.169,240,43,24,208.24
24 DATA103. 12, 141.24.208.96
23 PRINTCHRt(147)TA8(212, "LETTURA DEI DATA": Xl=49132: X2»36931
26 FORI=0TO237:REAOA: POKEX 1 + 1 .A: X=X+A:NEXT j IFXOXZTHENPRINT'DATA ERROR' :END
27 PRIHTCHR* (147) "DIGITARE POKE2.0 PER RUOTARE I CARATTERI A DESTRA DI 90 GRADI'
28 PRINT''DI3ITARE P0KE2. 1 PER RUOTARE I CARATTERIA SINISTRA DI 90 GRADI
29 PRINT-flUINDI LANCIARE IL PROGRAMMA (SVS49132, '
30 PRINT' I CARATTERI RUOTATI SOSTITUISCONO NELLA RAM QUELLI IN REVERSE"
Helicopt
di Roberto Lombardelli - Alieno t PC I
Questo lettore della provincia di Piacen-
za ci propone un gioco dalle caratteristiche
assai semplici, ma dalla veste grafica cura-
tissima. Siete in una caverna, e dovete sal-
vare un certo numero di omini disseminati
nell'antro (per salvarli basta poggiarvisi
sopra). Ci sono anche delle basi di riforni-
mento, che incrementano il vostro punteg-
gio. togliendovi però un po' di tempo. Ave-
te a disposizione una sola vita, e per di più
un tempo assai limitato, memorizzato nel-
la variabile TE in linea 200. Volete un con-
siglio da amico? Per i primi tempi (due o
trecento anni) aumentate quel valore di
almeno 10 volte.
Un piccolo appunto riguarda la mano-
vrabilità dei comandi, fissali nelle lettere S
2 REM »♦♦♦♦♦♦♦♦♦♦♦♦»♦*♦******
3 REM * HELICOPT DI ♦
4 REM * LOMBARDELLI ROBERTO *
5 REM » VIA EINAUDI, 4 ♦
6 REM * 29010 ALSENO 'PC) *
7 REM
8 QOSUB 40000
9 TE=200
10 61=54272 FL=61 FH=SI*1 TL=SI+2 TH=6!*3 W=61*4 r 1=61*5 HL=6I*ó L1=SI*24
11 DF=5
15 REM CARATTERI RIDEFIMITI
20 FORT=12283TO12288*<3*10>-1 READS POI ET A IIE..1
36 DATA255. 255, 243, 113.97,97.33 32,56 li* 146 124,36,40,40.108
40 DATA255* 129 66, 60. 60, 6o 129-255.24 . 126, 126 126 • 126 24 12c 102
50 BATA15.64.255 79. 3.0,0,3.254,64.252.250-249.255. 72-255. 7. 31, 7, 1 , 1 . 1 .255 2
68 DATA0. 0,0, 0.0, 128.255,64
70 DAT A255 , 255 ,255.255,255, 255 . 255 . 255 , 32 , 33 97,97 113 24 J 255 .-,5
80 FORT=1223S-K3*32,T01228È*‘S»3i -1 READA POI' ET ■ A MELI
90 DATA0. 0,0, 0,0, 0,0,0
91 P0KE532S11 FRI NT "Ila" P0KE53281 , 0 POKE53280.0
L00 P0KE53272 , PEEK ' 53272J0R12
ne PRINT"a»^HHHeeeel>ltì!eee@e@eH@li!ee8lleeeel^!eeeeeel3HHHH' , ,
120 PRINT"HHHH)gggggggggggg|-IPkWKi£::liggggVPgggggf I3HHH " .
1 30 FRlt)T"HMIi!4|»»»»»»gW»| l im»»|,,.: VIMIMMtiMftliw ,
14Ù i-v ;m »»»BiB »»Ii.b »»»»»»»»!
150 PR I NT ' )»»!",
160 FRINÌ l •»£ li",
170 PRINT" ì 1 1 »Mi£ »M»li»iHHH" -
180 PPINT"iBEBBEB£E£BBB£EE;«eHIBBBai»Miff:«*ii3.II 1 1 IHIM&H" -
190 PRINT
200 PR I NT " it£ •»(>£ J00I " -
21Ù PRINT" H«»»M>l-IB(E:«»BÌB'i»»Ì»*»»»»»l600 9»»l!HHHI»»gg»il"
220 PRINT"SiB£;lI »gg| IIiiE .
2 50 PR I : IT " t " -
240 PRINT
250 PRINT "HiKMgiHUgHI lii»g»M»ii»P0IUHi -
260 PRINT"HHIIHÌimM2HHIIgMMggMMIHHHTI»UI 1 1 1 1 IH" ,
27© PRINT"HHHSÌBBBBEaEWWSHHIi»Ì**»g»WlHH®G@0>«»ei!!tì00H";
236 PRINT "HHHHHHHH1 .
290 PR I NT " HHH0®@HHH 1 1 (PUH I ilMtilI HHHHiiBBBBBBEBBB®ÌH ' •
300 PRINT "HHeiMUaHHHHWIHHHI 1 1 gftll i i; II " ,
310 FRIMT"H@M»»*l3@@HMHaGHHHMHHHHMIiBEl»KBB££a»MiB£fi I" ■
320 PRINT"Hli»»»W»»»ISIi»0)i»|8HHWH@iilBBB£BB.*M-tti»»»»HaH" -
339 PRINT "HI IIWttLiE )»»).4li -
349 PRINT"HHHil»»Ì»»M»»»g»»»»»»»*>KiB:BBB£B.»iHliM9:4- JM1H" -
356 PR I NT " HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHa"
134
MCmicrocomputer n, 38 - febbraio 1985
0 PClkEKl . 15 POKEHL-U
jKEFL.200 POKEW 123
430 IFP=33THENSF- 40
::: :r: ìóthensf , *40
450 IFP=64THDISP=0
500 IFSPO0THEN520
501 POP ELI • 15 POt ELI. O
' 2 TE=TE : ir TE --OTHEN3O0OO
510 0010400
520 Fl-FEEMPG+SP.
.. i-THEIlGOT 05000
400O REM E:
5000 IFF 1-
5001 FOKEW.0 POKEk:
12 POKEPG- SP-
IONE
. -0ÙRP2= 1 ORF 2=7 Il tEM 1 0000
POkELl.O GOTO40O
3KEPG+SP.5
5G10 FORVO=15TO0STEP . .
502O FOt. ELI . VO FOKELI . 15 POI.EHL
1 ■ I .
105 «EH f iilE uioco
POKEPG. 32 POKEPG- 1 , 32
40 PUKEFL 200 POKEW. 1
5O60 PPIIIT ' BUtìlWFOUF OC ORE 1
50 FO FPIIiÉ ' *TTF V «GB III • V. 'IL >•
5080 CÙ=C0*1 IFC03 15THEiIló=1
5081 POKE53281.CO F0KE53281 .00-1 uETFt* IFFI»="'
5100 P0KE532S1.1 POEE532S0.1 FRI»
1 000Ò I FP 1 =6At IDP2=?THENI5000
4 PG=PGr£P
" "OKEPG -5 PUkEPG-1.4 POKEPG-
■■.1»W«»»M300
“ Et®
10805
10010 FGi.EW.0 POKEH.I
1OO20 POI D I lo POKELi -3 POI.EHL, o i ut ,
'■ ~ ' "0 ilE,:r POKEW, 0 POI. El J
.OMO 5C=SC*it
1O05O GQT 054C
-&=PG+SP POI.EF'G.5 FOI.EP&-
.32 POKEPG-SP-1,32
.40 PCrt.EFL.200 POKEW. 1
IFND=0FTHtM20000
POKEPG- SP , 32 POKEPG-SP-1,32
15001 T
15O10 POKEW, 0 POKEKI.0
‘ ILI. 10 POKELI. 3 POKEHL.O POKEFH , 40 P
15030 ruRr=lTO50M HE..Ì Oi.Eii ... POIEKI.0
" U 5C-Ì-.-150 GOTO540
•J REM FINE SCHERMO'
O P0KE53272.PEEK'53272'AND21 PPlHT'i
0 FFIui COMPLETE!' THI 5 WBVE.TRV THE NEXT
20020 HU=B TE-200 G0T031
20300 FEM TEMPO SCADUTO
50000 PCI E5.2F2-I L_> 5 .n.lLl F«lHT~3IMMn«M
E R '•
30010 F OR T - 1 T O250Ó ME. T ijTQS050
,3000 Fi.:: 5101.B
»
:*»*n*n
200 POKEW. 123
" FC'PT = 1 T O3O0O HE..T DF=DF+3
S'ina mia ■
s;9 Il* 3 l premi-
si» :.i uio uh
a». •' iniiiPM tasto
ai» - DESTRA'
H« = 'IHDI4OI40
'••MI
iOIvii. i unir.. 1', UHM j,hn:l
IL L. . IERI .1. U LIMI IRTO.
Questo programma è disponibile su
cassetta e disco presso la redazione. Ve-
dere l’elenco dei programmi disponibili
e le istruzioni per l’acquisto a pag. 1 53
cowMOTone »
(sinistra). D (destra), I (sopra) ed M (sot-
to): non sono prontissimi, e talvolta rad-
doppiano il colpo.
I Autorun per disco
di Luciano Usuelli- Varese
Come è risaputo, premendo contempo-
raneamente i due tasti Run e Shift i compu-
ter Commodore consentono di avere l'au-
torun del programma. Tale combinazione
però agisce solo sulla cassetta. Con il disco
è comunque possibile avere una funzione
analoga, usando la routine MENU, realiz-
zata dal sig. Usuelli. Con MENU si ottiene
la visualizzazione su schermo dei program-
mi giacenti sul disco, e il successivo carica-
mento con autorun di uno di questi pro-
grammi. L'unica limitazione è nei nomi dei
programmi stessi, che devono essere me-
morizzati nel directory utilizzando una so-
la lettera: A.B.C....
Diamo ora una scorsa al listato. In linea
100 e 1080 vengono cambiati i colori della
scritta: nel secondo caso ciò serve per ma-
scherare le scritte SEARCHING e gli altri
30 REM
SI REM ** BUTORUN DB DISCO «♦
82 REM *♦ PER /IL E 64 ♦»
Si REM »♦ DI LUCIANO USUELLI **
84 REM ***:*:♦*♦***♦***♦♦♦*♦♦♦♦♦.♦♦
85
100 PRINT"^' PRINTCHR*' 5
110 PRINT" MENU*»»"
120 PRINT "==»===== ========= "
130 PRINT "PROGRAMMA ALFA 'A.'
140 PRINT "PROGRAMMA BETA >B'
ISO PRINT" PROGRAMMA GAMMA '(.>
160 PRINT "PROGRAMMA DELTA • D '
170 PRINT "PROGRAMMA ETÀ <Ei
IOOO GET A* IF R*=" "THEN 1000
1020 IFASC'At ,<65 OR ASC > A* > 563THEN 1 000
1030 POKE 634. ASC' AJ ■
1040 RESTORE
1050 FORA=0TO2 READB P0KE631+A.B HE
106O FORA=0TO5 READB P0KE635+ A , B • NE
1080 PRINT CHRJ131 i
1030 POKE 138.10
1100 END
1200 DATA 76.111.34,34,44.56.58 131
messaggi del computer, che verranno scrit-
te nel colore dello sfondo; il primo coman-
do. invece, ripristina un colore visibile. Il
menu viene generato con le linee 1 1 0 - 170.
I n linea 1 000 si aspetta che venga premu-
to un tasto, poi si verifica che corrisponda
ad una delle lettere possibili (di codice
ASCII da 65 in poi). Le linee 1030 e 1040
approntano il bulTer di tastiera (locazioni
Ram da 631 a 640) al caricamento dell'i-
struzione diretta (scitta in modo abbrevia-
to)
Lr "< lettera scelta >',8:CHR$(131) [return)
che quindi caricherà il nuovo programma.
Il cuore delia routine è il CHRS( 13 1 ) stam-
pato dopo l'istruzione di caricamento: è lui
che dà il via all’autorun. Tra l'altro questo
comando è lo stesso che viene abilitalo
dalla pressione dei tasti Run + Shift. MC
MCmicrocomputer n. 38 - febbraio 1985
135
cura di Maurizio Bergami
Prospettiva
I di Carlo e Silvio Ziccardi - Roma
Descrizione e spiegazioni per l’uso
Il programma permette di disegnare sul-
lo schermo (ed eventualmente trasferire su
carta per mezzo della stampante) oggetti
tridimensionali in prospettiva, posti in
qualsiasi posizione rispetto ai tre assi di
riferimento.
Per disegnare la prospettiva di un ogget-
to occorre seguire, in genere, la seguente
procedura:
I ) Posizionare l'oggetto in un sistema di
assi cartesiani ed assegnare ad ogni vertice
le coordinate rispetto alla terna di assi.
2) Numerare i vertici dell'oggetto da di-
segnare.
3) Assegnare i collegamenti tra i vari
vertici del solido (cioè il modo in cui i
vertici sono uniti tra loro: per esempio il
nodo 2 sarà unito col nodo 3 e col nodo 7
4) Assegnare la rotazione che si vuole
che il solido assuma rispetto agli assi (asse-
gnando il valore di ogni rotazione intorno
al suo asse).
5) Definire la posizione del punto di vi-
sta. ossia del punto da cui si osserva l'og-
getto (il punto di vista è definito da tre
coordinate).
A questo punto il computer ha tutti i
dati per disegnare. In particolare il pro-
gramma in Basic seguirà le seguenti proce-
dure. Una volta premuto il tasto RUN il
calcolatore dimensionerà le matrici che
dovranno contenere le strutture di dati: a
questo scopo ci verrà richiesto il numero di
nodi che dovremo immettere in memoria
(si noti che conviene prevedere un numero
più alto, per poter aggiungere un altro og-
getto senza dover reimmettere tutti i dati
precedenti).
Subito dopo il programma ci sottoporrà
un menu di controllo comprendente:
Ingresso dati
Stampa dati
Correzione dati
Disegno
Ecco l'analisi delle opzioni previste:
Ingresso dati
Non si può disegnare se prima non si
immettono i dati relativi al solido da dise-
1 REM ***********************
5 REM * *
3 REM * PROSPETT IUA *
4. REM * *
5 REM ***********************
6 REM
8 BORDER 1: PAPER 1: INK 7: C
L5 : POKE 23658 , 8
10 DRTR CZ,-SZ,0,SZ,CZ,0
12 DATA 0 , CX , -SX , 0 , SX , CX
14- DATA cy ,0, -sy ,sy , 0 , cy
15 PRINT " STUDIO PROSPE
TTIUE
16 BEEP 0.7,0: INPUT "Numero n
odi k.
18 LET p V = 1 : LET up=0: LET nn
20 DIM t
b (3,4) : C
DIM 9 (2,C
30 BEEP G
31 INPUT
40 IF ai =
50 IF a $s
60 IF a $ =
65 IF at =
70 GO TO
89 REM ET
90 BEEP .
91 INPUT
3 ; z$
100 IF Z*»
110 IF Z*=
120 IF Z i =
121 GO TO
.1,0: CLS
"Ingresso dati
Correzione dati
Stampa dati
Disegno
"S"
THEN GO TO 370
ThEN GO TO 90
TMEN GO TO 400
THEN GO TO 3260
CLS m
'Coordinate nodi
Unione nodi
Controllo IWftM
•CN" TMEN GO TO 130
'UN" THEN GO TO 240
" TMEN GO TO 30
129 REM I
130 CLS
131 PRINT AT 0,2; "H
■ ’ ; "1B= " ; up; AT 0,2'
2 PRINT AT 1,8; “C'
COORDINATE NO
DI"
13
IN+
140 INPUT "X » " ; X *
141 IF CODE X $ < 45 OR CODE xt>57
THEN GO TO 30
150 INPUT "Y a ” ; y *
151 IF CODE y $ <45 OR CODE y*>57
THEN GO TO 30
160 INPUT "Z = " ; Z $
161 IF CODE Zi <45 OR CODE Z$>57
THEN GO TO 30
170 LET t (pv , 1 ) =*JAL X $ : LET t (p
V,2)aUAL y$: LET tipv,3)sUAL Z$:
LET t (pv ,4) =1
181 PRINT TAB 2 ;pv;TAB 8 ;t(pv,l
) ; T AB 16; t (pv , 2 ) ; TAB 24;t(pv,3)
190 IF pv>up THEN LET upspv
195 IF p V = K THEN GO TO 90
200 LET pvspv + l: IF t(PV,4)=l T
HEN GO TO 200
210 LET nn 3
219 REM I
13
220 GO TO 131
240 CLS : PRINT AT 0,7; "COLLEGA
MENTO NODI"
241 PRINT AT 2,3; "NODO PRINC.";
AT 2, 16; "NODO SECOND."
250 BEEP 0.1,0: INPUT "Nodo pri
ncipa les"; li
251 IF CODE li <48 OR CODE li >57
THEN GO TO 30
252 BEEP 0 . 1 , 0 : INPUT "Nodo con
nesso 3 " ; m t : PRINT " "jlt,"
136
MCmicrocomputer n. 38 - febbraio 1985
25Ò IF CODE m $ <48 OR CODE m*>57
THEN GO TO 30
254 LET l 1=UAL 1$: LET 12 sURL m
*260 IF t (11,4) =0 THEN BEEP 0.1,
0: print 81 ; "il nodo ";ll;" non
e' stato assegnato": PAUSE 80: G
0 TO 250
261 IF t (12,4) =0 THEN BEEP 0.1,
0 : print 81 ; "il nodo " ; 12;" non
e' stato assegnato": PAUSE 80: G
0 TO 250
265 GO SUB 3000
266 IF fisi THEN GO TO 250
270 FOR i =1 TO 3
280 IF C ( 1 1 , i ) =0 THEN LET CUI,
1 ) sl2: GO TO 360
300 NEXT
' ^ 60 *
-R J
320 IF C ( . _
j) =11: GO TO
340 NEXT
350 PRINT
0 NUMERO
TI NODI:
, ”, 12: PAUSE 100
360 GO T O 250
369 REM “■ ™
370 CLS
371 BEEP 0
COORDINATE
UNIONE
) =0 THEN LET C ( 12,
ASSEGNARE UN NUOU
AD UNO DEI SEGUEN
il; "
GO TO 90
374 IF US=
"ROT
"ROTAZION
INPUT "Angolo d
” " ; rx
; rx
NPUT "Angolo d
"; ry
INPUt "Angolo d
,0: INPUT "MATRICE
linai MATRICE
l]!W | it CONTROLL
... „ THEN GO TO 30
375 IF w $ = "MC" THEN GO SUB 3140
380 IF U $s"MU" THEN GO SUB 3090
381 GO TO 371
382 PRINT 8 1; "B
pause i: paus
385
395 REM
400 CLS
402 PRINT "ANGOLI DI"
E": PRINT
405 BEEP 0.
i rotazione
415 PRINT
420 BEEP 0.
i rotazione
425 PRINT "R5
430 BEEP 0. '
i rotazione
435 PRINT "ROT Z = ";rz
440 DIM V ( U p i 3 ) : DIM S (3) : DIM
r (3) : GO SUB 1000
445 FOR K s 1 TO up
460 GO SUB 1135
465 FOR isl TO 3
466 LET V (k , i ) =S (i )
467 NEXT i
470 NEXT k
490 PRINT : PRINT "POSIZIONE DE
L PUNTO DI UISTA" : PRINT
500 BEEP 0.1,0: INPUT "Distanza
= " ; d : BEEP 0.1,0: INPUT "Spost
amento s -;f : beep 0 . 1 , 0 : input
"A ltezza = ";h
501 CLS : PRINT "DISTANZA =
" ; d : PRINT "SPOSTAMENTO = ",f: P
RINT "ALTEZZA = “;h
502 BEEP 0.1,0: INPUT "UUOi diS
egnare ? ”;b$
503 IF B*s"S" THEN GO TO 508
504 IF B$ < > "N" THEN GO TO 502
505 GO TO 30
508 CLS
510 LET p s f -d *TAN CPI/6)
520 LET ts2*d*TAN (PI/6) : LET h
l=175/255*t: LET r=hl/2-h
525 FOR n =1 TO up
530 IF t (n , 4) =0 THEN GO TO 790
534 LET n l=n
537 GO SUB 1490
540 FOR i =1 TO 3
550 LET b (i , 1) =SS
560 NEXT i
570 FOR i si TO 3
580 LET b (i ,2) stt
590 NEXT i
600 LET tls0
610 IF (NOT (SS > s0 AND SS<=255)
) OR (NOT (tt>s0 RND tt<=175)) T
HEN LET tisi
620 FOR k si TO 3
630 IF C(n,k)=0 THEN LET b(k,3)
= - 1 : GO TO 730
640 LET nlsc (n , k)
650 GO SUB 1490
660 LET 1 2 =0
670 IF (NOT ( S S > =0 AND SS<s2S5)
) OR (NOT (tt>s0 AND tt<sl75)) T
HEN LET t2=l
680 LET b (k ,3) sss
690 LET b (k ,4) stt
700 IF tl+t2>0 THEN GO SUB 1540
705 IF t l+t2=l THEN GO SUB 1590
: GO TO 730
710 IF tls0 AND t2s0 THEN GO TO
730
720 GO SUB 1830
730 NEXT k
740 FOR k=l TO 3
750 IF b (k ,3) <0 THEN GO TO 770
760 PLOT INT b ( k , 1) , INT b(k,2):
DRAU INT b ( k , 3) -INT b(k,l),INT
1035 FOR i si TO 2
1040 FOR jsl TO 3
1045 READ d (i , j)
1050 NEXT j : NEXT i
1055 LET cysCOS ry : LET sysSIN r
1075 NEXT „ .
1080 RETURN
1135 IF r X < >0 THEN GO TO 11S0
1140 FOR isl TO 3
1145 LET S(i)st(k,i): NEXT i:
TO 1130
1150 FOR jsl TO 2
1155 LET S ( j) =0
1160 FOR n s i Tu 3
MCmicrocomputer n. 38 - febbraio 1985
137
) : LET S (1) = t ik , 1)
1180 IF f y < > 0 THEN GO TG 1195
1185 FOR i =1 TO 3
1190 LET rii)=S(i): NEXT i : GO T
0 1230
1195 FOR J al TO 2
1200 LET f ( j) =0
1205 FOR n=l TO 3
1210 LET r ( j) = r ( j) +s in) *g ( j ,n)
1215 NEXT n: NEXT j
1220 LET r (3) =f (2)
1225 LET r (2) =S (2)
1230 IF r Z < > 0 THEN GO TO 1245
1235 FOR i=l TO 3
1240 LET S (i ) sr (i ) : NEXT i : GO T
0 1275
1245 FOR j=l TO 2
1250 LET S ( j) =0
1255 FOR n=l TO 3
1260 let s ( j) =s ( j) +r (n) *a ( j ,n)
1265 NEXT n : NEXT j
1270 LET S (3) =r (3)
1275 RETURN
1490 LET wi = f-< if-v (ni, li ) /(v (ni
, 2 ) +d ) *d )
1500 LET SS= (Wl-P) *255/t
1510 LET M)2= (V in 1,3) -h) / Cd+V (ni,
2) ) *d+h
1520 LET tt= iw2 + M *175/hl
1530 RETURN
1540 LET Xl = bU,l): LET yl=b(k,2
)
1550 LET X 2 = b ( k , 3 ) : LET y2=bik,4
1560 DEF FN x <y ) = iy -y 1) * (X2-X 1) /
iy2-y 1) +x 1
1570 DEF FN y (x ) = ix -x 1) * iy2-y 1) /
(x 2 -xl) +y 1
1580 RETURN
1590 RESTORE 810; IF RBS <y2-yl)
> =RBS (X2-XD/255 TNEN GO TO 163
0
1600 LET y ll=y2- ty2-y 1) /2
1610 IF i X 1 < 0 RND X2>0) OR (X2<0
RND Xl>0) THEN LET Xll=0: GO TO
1800
1620 LET X 11=255: GO TO 1800
1630 IF RBS (X2-X1) >=RB5 Cy2-yl)
/ 175 THEN GO TO 1660
1640 LET X11=X2- <X2-Xl) /2
1650 IF C y 1 < 0 HND y 2 >0) OR iy2<0
RND y 1 >0) THEN LET yll=0: GO TO
1300
1655 LET y 11=175: GO TO 13O0
1660 FOR i=l TO 2
1670 RERD y
1680 LET X 1 1 =FN X iy)
1690 IF X 1 1 < 0 OR X 11 >255 THEN GO
TO 1710
1700 IF CXKXll RND X 11 <X2) OR (
X 2 < X 1 1 RND X 1 1 < X 1 ) THEN LET yll =
y ; GO TO 1790
1710 NEXT i
1720 FOR i=l TO 2
1730 RERD X
1740 LET y 11=FN y(X)
1750 IF yllv* OR y 11 >175 THEN GO
TO 1770
1760 IF iyl<yll RND yll<y2) OR t
y2<yll RND yll(yl) THEN LET xll =
X: GO TO 1790
1770 NEXT i
1775 LET b(k,3)=-l: RE5T0RE 810:
RETURN
1780 print "Errore in intersezio
ni 1": STOP
1790 RESTORE 810
1800 IF t 1 =0 THEN LET b(k,3)=Xll
: LET b ( k ,4) =y 11: GO TO 1820
1810 LET b(k,l)=Xll: LET bik,2) =
y 11
1820 RETURN
1830 RESTORE 810: LET 4=0
1840 DIM X (2) : DIM y (2)
1850 IF RBS (y2-yl) > =RBS (X2-X1)
/255 THEN GO TO 1900
1860 LET y (1) =y2 - iy2-y 1) /2 : LET
y (2) =y ( 1 )
1870 IF y il) < 0 OR y ( 1) > 175 THEN
LET b ( k , 3) = -1 : RETURN
1880 IF 1x1(0 RND X2 <0) OR (Xl>2
55 RND X2 >255) THEN LET b(k,3)=-
1: RETURN
1890 LET X ( 1 ) =0 : LET Xi2)=255: G
0 TO 2130
1900 IF RBS (X2-X1) > =RBS (y2-yl)
/ 175 THEN GO TO 1950
1910 LET X (1) =X2- (X2-X1) /2: LET
X (2) =X (1)
1920 IF X (1) <0 OR X (1) >255 THEN
LET bik,3)=-l: RETURN
1930 IF (yl<0 RND y2<0) OR (yl>l
75 RND y2 > 175) THEN LET b(k,3)=-
1 : RETURN
1940 LET y(l)=0: LET y(2)=175: G
0 TO 2130
1950 FOR i =1 TO 2
1960 RERD y
LET X ( j ) =X 1 1 ; LET y (j ) =y
TO 2010
2000 LET b ( k , 3) =-l : RESTORE 810 :
RETURN
2010 IF 4=2 THEN GO TO 2120
2020 NEXT i
2030 FOR i =1 TO 2
2040 RERD X
2050 LET y 11=FN y (X)
2060 IF y 1 1 < 0 OR y 11 >175 THEN GO
TO 2100
3070 IF C
y 11 > y 2 RND y 1_
1: LET X«j)=X: LET y(j)=yll: GO
TO 2090
2080 LET b ( k , 3) s-1 : RESTORE 810:
RETURN
2090 IF J=2 THEN GO TO 2120
2100 NEXT i
2110 LET b ( k , 3) = - 1 : RESTORE 810 :
RETURN
2120 RESTORE 810
2130 IF (X 1 >X2 RND x(l)>X(2)> OR
(X 1 <X2 RND X (1) <X (2) ) THEN GO T
0 2160
2140 LET X3=X (1) : LET Xtl)=X(2):
LET X (2) =X3
2150 LET y3=y il) : LET y(l)=y(2):
LET y (2) =y3
2160 LET b ik , 1) =X (1) : LET b(k,2)
=y il)
2170 LET b ( k , 3) =X (2) : LET b(k,4)
=y ( 2 )
2180 RETURN
3000 LET f l =0
3005 FOR i =1 TO 3
3010 IF C(ll,i)sl2 THEN GO TO 30
60
3020 NEXT i
3030 FOR j=l TO 3
3040 IF cU2,j)=U THEN GO TO 30
60
3050 NEXT J : GO TO 3080
3060 BEEP 0.1,0: PRINT ttlj"l8 CO
nnessione " ; 1 1; " ; 12 ' "e ' già st
ala assegnata": PRUSE 80
138
MCmìcrocomputer n. 38 - febbraio 1985
3070 LET
30S0 RETU RN
3039 REM
3090 PRINT
N IONE "
3095 PRINT RT 2,0; "nodo p f " ; RT 2
,9;"nodo cn";RT 2,l7;"nodo cn";R
T 2,25; "nodo cn" : PRINT
3100 FOR i =1 TQ up
3110 PRINT TRB 3; i ; TRB ll;c(i,l)
. T RB 19; C (i ,2) ,TAB 27;cii,3)
3114 IF INKEY $ = " S " TMEN PAUSE 1:
PRUSE 0
3120 NEXT i
3130 RETU RN
3139 REM Z
3140 PRINT
INRTE" : PRINT
3145 PRINT RT 1,0;"C";RT 1,5;"
; RT 1,13; "y " ; RT l,2l;"z";RT i,*v
; " 1 4 ”
3149 PRINT
3150 FOR i=l TO Up
3160 PRINT TRB 0;i;TAB 5; t Ci , 1) ;
TRB 13; t Ci ,2) ; TRB 21; t C i , 3) ; TRB
30; t Ci ,4)
3165 IF INKEY $ = "S" THEN PAUSE 1:
PRUSE _
3170 NEXT
3130 RETU RN
3259 REM □
3260 BEEP
ne
; t*
i
correzi_
Coordin
un ione
Contro i 1
3270 IF t $ = " CN THEN GO TO 3310
3280 IF t $ = "UN" THEN GO TO 3440
3290 IF t$="" THEN GO TO 30
3300 GO TO 3260
3310 BEEP 0.1,0. INPUT "Nodo da
correggere o CAn ce l la re?" ; r $
3311 IF r S = "CO" THEN GO TO 3315
3312 IF r*="Cfì" THEN GO TO 3400
3313 IF r*="" THEN GO TO 30
3314 GO TO 3310
3315 BEEP 0.1,0: input "Numero d
et nodo da correggere? ";u*
3316 IF CODE u$<48 OR CODE U*>57
THEN GO TO 3260
3317 LET u=URL U*
3318 IF t (u , 4) < > 1 THEN PRINT «1;
"il nodo ";u;" non e' assegnato"
: 60 TO 3315
3320 CLS . PRINT "CORREZIONE COO
RD INRTE NODO ";u
3330 BEEP 0.1,0: INPUT "X a ";t(
U , 1)
3340 BEEP 0.1,0
U ,2)
3350 BEEP 0.1,0
,3)
INPUT "Y =
INPUT "Z =
t C
; TRB
3370 PRINT : PRINT TRB 0;
5 ; "x " ; TRB 15; "y " ; TRB 25,
INT
3380 PRINT TRB 0,u;TAB 5;t(U,l)j
TRB 15; t Cu ,2) ;TAB 25; t Cu, 3)
3390 GO TO 3315
3400 BEEP 0.1,0: input "Numero d
et nodo da cancellare? ";q*
3401 IF CODE q$<48 OR CODE q$>57
THEN GO TO 3260
3402 LET nc=URL q*
3404 FOR i=l TO up
3405 FOR j=l TO 3
3406 IF C(i,j)=nC THEN LET C(i,j
: =0
3407 NEXT j : NEXT i
3410 CLS : LET t(nc,4)=0
3415 LET nn=nn-l: IF nc<pv THEN
LET PV =n C
3420 BEEP 0.1.0: PRINT 01; "NODO
CANCELLATO = ";nC: PRUSE 1 PRUS
E 80
3430 GO TO 3400
3440 beep 0 . 1 , 0 : input "Connessi
one da annullare : primo no
do = ";p$
3441 IF CODE P $ <48 OR CODE p$>57
THEN GO TO 326©
3450 BEEP 0.1,0: INPUT "Connessi
one da annullare secondo
nodo a " ; r %
3451 IF CODE r*<48 OR CODE r*>57
THEN GO TO 3260
3455 CLS
3460 LET cnlaURL P$: LET Cn2=URL
34$0 FOR i =1 TO 3
3490 IF CCcnl,i)=cn2 THEN LET C(
cnl.i) =0: GO TO 3560
3500 NEXT i
3510 FOR i =1 TO 3
3530 IF c(cn2,i)=cnl THEN LET CC
cn 2 , i ) =0: GO TO 3560
3540 NEXT i
3550 BEEP 0.1,0: PRINT 01;"Conne
ssione non trovata": PAUSE 1. PA
USE 80: GO TO 3260
3560 BEEP 0.1,0: PRINT «1; "Corine
ssione annullata = ";cnl
; - " ; cn2 : PRUSE 1: PRUSE 0: GO
TO 3440
gnare: scelta questa opzione ei apparirà
quindi un secondo menu:
Coordinate nodi
Unione nodi
Controllo
Per disegnare l'oggetto voluto dovremo
inserire prima le coordinale dei nodi e poi
specificare come sono collegati.
•Routine inserimento coordinate.
Per inserire le coordinate dei nodi biso-
gna attribuire ad ogni nodo un numero,
poi assegnare a questo numero i valori del-
le sue coordinate rispetto agli assi X.Y.Z.
orientati come in figura I.
Appena scelta l'opzione "Coordinate
nodi" appariranno le seguenti scritte.
PV=1UP = 0NN = 0
Coordinate nodi
NXYZ
PV è una variabile che indicherà sempre
il numero del nodo che stiamo per memo-
rizzare (abbreviazione di "primo vuoto");
UPè la variabile che indica il numero dei
nodi più alto finora memorizzato (abbre-
viazione di "ultimo pieno"):
NN indica il numero dei nodi memoriz-
N indicherà il numero dell'ultimo nodo
immesso nel calcolatore:
in basso sullo schermo saranno richieste
successivamente le tre coordinate da attri-
buire al nodo.
Una volta assegnate, i loro valori, non-
ché il numero del nodo, appariranno sullo
schermo: poi verranno incrementate le va-
riabili PV. UP. NN e apparirà la richiesta
coordinate relativa al nodo successivo.
MCmicrocomputer n. 38 - febbraio 1985
139
Per uscire da questa fase basta premere
ENTER alla richiesta di input: l'uscita è
comunque automatica dopo avere inserito
le coordinate dell'ultimo nodo disponibile.
•Routine unione nodi-
li computer ci chiederà alternativamen-
te il numero di un nodo principale ed il
numero di un nodo ad esso connesso.
Come abbiamo già osservato, la memo-
rizzazione delle connessioni tra i vertici è
un'operazione indispensabile per poter di-
segnare; per essa lo Spectrum segue la se-
guente procedura: chiede prima il numero
del "nodo principale” (può essere quello di
un "nodo qualsiasi"), poi il numero del
“nodo secondario", che sarà un qualsiasi
nodo collegato da una linea con il primo.
È necessario memorizzare tutte le con-
nessioni che si riscontrano nel solido, cioè
gli spigoli del solido.
I dati inseriti appariranno mano mano
sullo schermo per facilitare la ricerca dei
nodi non ancora registrati.
Le connessioni tra i nodi vanno inserite
una volta sola, quindi, ad esempio, se è già
stata assegnata ia connessione 5-2, il com-
puter si rifiuterà di accettare la connessio-
ne 2 - 5 facendo apparire la scritta “la
connessione 2 - 5 è già stata assegnata". Un
altro messaggio apparirà se tenteremo di
assegnare una connessione con un nodo le
cui coordinate non sono ancora state me-
morizzate. In questo caso sì dovrà uscire
dalla routine per entrare in quella di inseri-
mento coordinate (si esce con ENTER).
Ogni nodo può avere al massimo 3 connes-
sioni: tentando di assegnarne una quota,
appare il messaggio “assegnare un nuovo
numero ad uno dei seguenti nodi: ni - n2“.
dove ni è il nodo in questione e n2 il nodo
col quale lo si voleva collegare.
Per ovviare a questa limitazione basta
definire un nuovo nodo con le coordinate
di uno dei due nodi interessati.
Per esempio, se apparisse il messaggio
"assegnare un nuovo numero ad uno dei
seguenti nodi: 3 - 7“ si dovrà definire un
nuovo nodo con le stesse coordinate del 3
(o del 7): in questo modo il nodo si raddop-
pia e diventa possibile assegnargli altre tre
connessioni.
Stampa dati
La routine di stampa dati permette di
vedere sul video le matrici che contengono
le coordinate dei nodi ed i loro collegamen-
ti. Premendo il tasto S si può arrestare la
stampa; per ripartire basta premere un ta-
sto qualsiasi.
Al termine si deve premere ENTER per
tornare al menu di controllo.
Correzione dati
Questa opzione ci permette di corregge-
re i dati relativi alle coordinate dei nodi ed
ai loro collegamenti.
Nel primo caso si può scegliere se cancel-
lare del tutto un nodo oppure semplice-
mente modificarne le coordinate.
Optando per la correzione, bisogna spe-
cificare innanzitutto il numero del nodo da
correggere e poi assegnare le nuove coordi-
nate. Volendo invece cancellare un nodo
basta specificarne il numero dopo aver
scelto l'opzione di cancellazione. La corre-
zione dei collegamenti prevede solo la pos-
sibilità di cancellare un collegamento già
esistente fornendo i numeri dei due nodi
connessi: per aggiungere nuovi collega-
menti è invece necessario utilizzare la rou-
tine principale di inserimento dati. Il pro-
gramma riconosce e rifiuta automatica-
mente eventuali valori errati (ad es. nodi o
connessioni inesistenti).
Disegno
Permette, ovviamente, di disegnare l'og-
getto (o gli oggetti) precedentemente defi-
Per prima cosa vengono richiesti gli an-
goli di rotazione che si vogliono dare
all'oggetto intorno ai tre assi: va ricordato
che le rotazioni sono considerate positive
in senso antiorario rispetto al verso positi-
vo dell'asse, come si vede in figura:
Si noti che gli angoli vanno forniti in
radianti: chi si trova più a suo agio con i
normali gradi può effettuare la conversio-
ne con la formula: angolo in radianti =
angolo in gradi *360/6.28.
Inseriti gli angoli il computer calcolerà le
nuove coordinate; il tempo impiegato di-
penderà ovviamente dal numero dei nodi.
Terminata questa operazione vengono
chiesti i dati relativi al punto di vista, ovvé-
ro alla posizione dell’osservatore.
La posizione del punto di vista è definita
da tre parametri: distanza, spostamento.
— Distanza: rappresenta la distanza del
punto di vista dal piano verticale XZ. che è
il piano di proiezione del disegno ed è sot-
toposto alle seguenti restrizioni:
I ) deve essere un numero positivo;
2) deve essere ad una congrua distanza
dall'oggetto disegnato.
Se vogliamo inquadrare nel disegno tut-
to l'oggetto, questo deve essere compreso
entro il cono di visione orizzontale, che ha
un'apiezza di 60 gradi.
È possibile avvicinarsi ulteriormente,
ma l'oggetto verrà inquadrato solo par-
zialmente; in ogni caso il punto di vista non
potrà mai essere “interno" all'oggetto da
disegnare.
— Spostamento: rappresenta la distanza
del punto di vista dal piano verticale ZY.
Può essere un numero qualsiasi, a patto
che il cono di visione che individua (assie-
me a "distanza") inquadri effettivamente
l'oggetto.
— Altezza: rappresenta la distanza dal
piano orizzontale XY. Può assumere qual-
siasi valore, ma naturalmente verrà dise-
gnata soltanto la parte dell'oggetto che in-
siste nel cono di visione verticale, che ha
un'ampiezza di circa 41 gradi.
2
OGGETTO
«
CONO 01 VISIONE
VERTICALE
Figura 5
T
Inseriti questi tre parametri viene chie-
sto “Vuoi disegnare ?”; questo per permet-
tere di correggere i dati relativi agli angoli
di rotazione ed al punto di vista.
Se tutto è posto si può rispondere col
tasto S; premendo N si ritorna al menu di
controllo.
Terminato il disegno è possibile ottenere
l’hard copy dello schermo, variare la posi-
zione del punto di vista e ridisegnare (con-
servando quindi gli angoli di rotazione
precedentemente fissati) oppure tornare al
menu di controllo.
140
MCmicrocomputer n. 38 - febbraio 1985
Consigli per l'immissione dei dati
1) Posizionare l’oggetto con il maggior
numero di lati possibile parallelo agli assi
cartesiani.
2) Numerare i vertici in ordine crescente
e disegnare una pianta per ogni quota alla
quale si trova un vertice.
3) inserire le coordinate dei vertici di
ogni pianta, iniziando da quella a quota
più bassa.
4) Scrivere le connessioni tra i vertici
procedendo dal nodo col numero più bas-
so a quello col numero più alto, e scrivere
solo le connessioni con nodi che hanno
numeri più alti del nodo principale. Anche
neU'inserimento delle connessioni convie-
ne seguire l’ordine delle piante disegnate.
Ecco un esempio pratico:
Strutture di dati utilizzate
Vi sono due tipi di dati memorizzati: le
coordinate dei vertici del solido rispetto ai
tre assi cartesiani e le connessioni dei verti-
ci tra loro (cioè gli spigoli che uniscono i
vertici e definiscono le facce del solido).
Il primo tipo di dati viene immagazzina-
lo in una matrice T di dimensioni K*4.
dove K è il numero massimo dei nodi (può
arrivare fino a 350 sullo Spectrum 48 K).
Le prime tre colonne della matrice sa-
ranno occupate dalle coordinate del pun-
to. mentre la quarta colonna sarà riservala
ad un flag che verrà settato quando il pun-
to sarà definito e resettato quando il punto
verrà cancellato.
Il secondo insieme di dati definisce l'u-
nione dei nodi tra loro; esso è memorizzato
in una matrice C di dimensioni K*3.
Ogni riga si riferisce al numero di un
nodo e gli elementi contenuti in essa indi-
cano i nodi connessi.
Prima di assegnare una connessione, il
programma controlla questa matrice per
evitare di accettare una connessione già
effettuata.
La terza struttura di dati utilizzata è la
matrice B, di dimensioni (3,4), che viene
sfruttata nelle operazioni di disegno sullo
schermo.
In essa sono immagazzinate le coordina-
te di schermo del punto N e dei tre punti ad
esso connessi.
Le prime due colonne contengono le
coordinate del nodo N (la prima colonna le
ascisse e la seconda le ordinate ).
Le altre due invece le coordinate dei tre
nodi uniti al primo.
Questo programma è disponibile su
cassetta presso la redazione. Vedere l’e-
lenco dei programmi disponibili e le
istruzioni per l’acquisto a pag. 153
software
spbcwum
I Delete e Cali in L.M.
di Luigi Rizzo - Pisa
Delete
Questa è una breve routine che permette
di cancellare gruppi di linee Basic con una
istruzione del tipo PRINT USR 64588,
first, last dove first e last sono i due numeri
che indicano la prima e l’ultima linea da
cancellare.
Una tale semplicità di chiamata non è
collegata ad una eccessiva occupazione di
memoria, infatti sono sufficienti solo 41
byte per svolgere la funzione desiderata.
L'unica cosa alla quale bisogna fare at-
tenzione nell'uso é che non vengono con-
trollati i valori dei parametri, per cui for-
nendo numeri maggiori di 9999 come nu-
mero di linea si possono avere risultati
"strani".
Nel programma si fa largo uso di routine
della ROM, per le quali è impensabile dare
una spiegazione completa: ecco comunque
alcuni accenni sul loro funzionamento (per
ulteriori spiegazioni si può consultare il
libro The complete Spectrum ROM disas-
sembly. edito dalla Melbourne House):
S196E In entrata HL contiene il numero
di una linea Basic. Al ritorno HL contiene
l'indirizzo iniziale della linea (o della suc-
cessiva se questa non esiste) e DE punta
all’inizio della linea precedente. Il flag Z è
posto uguale a 1 se la linea cercata esiste, a
0 altrimenti.
S19E5 Cancella le locazioni da DE a HL
- 1 , recupera lo spazio ricavato ed aggiorna
i puntatori.
S24FB È una delle routine più comples-
se. Valuta l'espressione il cui inizio è indi-
cato dalla variabile di sistema CH ADD
e pone il risultato nello stack. fp. Al ritorno
CH ADD punta al carattere successivo
alla fine dell'espressione.
#2DA2 Carica in BC un numero dallo
stack. fp.
Il caricatore esadecimale proposto effet-
tua automaticamente la verifica dei dati
Esempio di output
MCmicrocomputer n. 38 - febbraio 1985
141
inseriti e presenta la possibilità di rilocare
la routine (in questo caso la chiamata do-
vrà essere PRINT USR <origine> ).
Una volta caricato il codice lo si deve
salvare su nastro con SAVE "delete" CO-
DE 64588,41, in modo da poterlo poi cari-
care quando serve.
Cali
Quando si utilizzano delle routine in lin-
guaggio macchina, specialmente in fase di
prova, è spesso necessario inizializzarc i
registri della CPU. ed è altrettanto utile
vedere i loro contenuti al rientro: questa
routine permette proprio di effettuare tali
operazioni direttamente dal Basic, senza
appesantire ulteriormente il programma in
L.M. in fase di sviluppo.
Naturalmente una routine del genere è
utile se è abbastanza corta e semplice da
usare, perché esistono anche dei program-
mi monitor in L.M. che svolgono funzioni
142
MCmicrocomputer n. 38 - febbraio 1985
MCmicrocomputer n. 38 - febbraio 1985
143
SPÉCTRUM
analoghe ma sono piuttosto lunghi. La
routine presentata è lunga appena 231 byte
ed è anche facilmente rilocabile (contiene
solo 8 indirizzi assoluta-
li metodo usato per passare i parametri è
decisamente nuovo, nel senso che non fa
ricorso a delle macchinose espressioni per
caricare nello stack. fp tutti i dati necessari:
una tipica istruzione di chiamata ha la for-
ma
1000 RANDOMIZE USR 64768:
PRINT routine. A. F. HL. BC. DE. IX
e può essere seguita o preceduta sulla stes-
sa linea da altre istruzioni Basic.
I parametri indicali hanno ovvio signifi-
cato, e 'routine' é l'indirizzo della routine
da eseguire.
A questo punto ci sono due cose da no-
tare: prima di tutto non è detto che debba-
no essere fomiti tutti i parametri sopra
specificati: se qualcuno è superfluo sempli-
cemente può essere omesso (ovviamente
andranno omessi anche i successivi). In
secondo luogo per tali parametri si potrà
utilizzare qualsiasi cosa lo Spectrum valuti
come un numero, oppure delle stringhe
particolari (per esempio "8FC10"), che
verranno valutate con il loro valore esade-
cimale. Queste stringhe devono iniziare col
carattere al quale seguono caratteri
esadecimali, maiuscoli o minuscoli, dei
quali verranno considerati solo gli ultimi 4
(o meno, se ne servono solo 2 o ve ne sono
meno di 4).
All'esecuzione dell'Istruzione vengono
assegnati i valori ai vari registri, viene ese-
guita la routine utente, dopodiché si salta
ad un'altra routine che stampa i valori esa-
decimali di tutti i registri principali e torna
al Basic.
Una stampa tipica può essere
AF S1000
HL S5C3A
BC S107F
DE 80000
IX 80000
IY S5C3A
Tra le routine presenti nel programma
PR HL e PR A possono risultare utili
anche in altri programmi.
Esse stampano rispettivamente il conte-
nuto di HL e di A.
La stampa dei valori avviene sul file at-
tualmente in uso.
Per assicurarsi che sia il video conviene
far precedere l'istruzione RANDOMIZE
da PRINT:
I Prova riflessi
di Luca Brigai li - Milano
Come dice il nome, il programma prova
i riflessi del giocatore. Non è però (né vuol
essere) un vero e proprio test, ma solo un
divertente giochino ispirato a quelli che si
vedono nei bar ed al luna park.
Si deve premere il più rapidamente pos-
sibile un tasto qualsiasi non appena com-
pare sullo schermo, dopo un tempo di atte-
sa compreso tra I e IO secondi, la scritta
ORA!
Premendo un tasto prima dell'appari-
zione della scritta viene segnalata la falsa
partenza.
Dopo 10 tentativi il programma fornisce
il tempo medio di risposta; volendo è possi-
bile conoscerlo anche prima (basato natu-
ralmente sul numero di prove effettuate
sino a quel momento) premendo il tasto
SPACE.
Il listato è corto e molto semplice; volen-
do si può abbellirlo, ad esempio preveden-
do una gara fra più giocatori con tanto di
commenti al risultato ottenuto (anche se in
fondo non è tanto piacevole sentirsi dare
della lumaca da una stupida macchina!).
60 PRINT '" TEMPO DI RISPOSTA.
";T*2," CENTESIMI DI
SECONDO"
4 REM * *
85 BEEP t/50,20
90 LET St=St+t
5 REM
100 FOR y = l TO 300: NEXT y
7 GO SUB 9000: BORDER 4: PAPE
120 NEXT X
R 4 INK 0: CLS
125 IF p=0 THEN LET p =X
8 print "Questo programma p
160 LET tm=St/p
rova i tuoi ri f lessi Dopo un
170 print "il tuo tempo di risp
periodo di attesa varia-bile da
osta medio e di " ; INT itm*2+.5)
1 a 10 secondi appari -r a' sui
centesimi di secondo."
lo schermo la scritta" "81351" " .
130 PRINT '"Premi ""S"" per
h quei punto dovrai premere
fermarti o un altro tasto per
un tasto qualsiasi il piu veioc
ricominciare."
190 PAUSE 1: PAUSE 00: IF INKEY
9 PRINT "Dopo 10 tentativi co
* = "S" OR INKEY t = " S " THEN STOP
n o s c e r a i il tuo tempo medio di r
200 RUN 15
ispos ta "Premi SPRCE per termi
nare anti- cipata mente il gioco.
9010 BORDER 2: PRPER 6: CLS
9020 BRIGHT 1: OUER 1
10 PRINT Premi un tasto q
9030 LET 2 $ = " PROUA RIFLESSI"
ualsiasi per incominciare.": P
9035 LET i ri = ( 32 -LEN z*)/2-l
AUSE 0
9040 FOR 2=1 TO LEN Z*
15 LET St=0: LET P=0
9050 LET i = INT <RND*5)
20 FOR X=1 TO 10
9060 LET ax =INT ÌRND*2)*230: LET
P X = INT iRND*25) +ax
25 PRINT "TENTATIUO N. ";x
9070 LET ay=INT iRND*2)*150: LET
31 IF INKEY $ = " " THEN LET p =X -
p y = INT iRND*25) +ay
1. LET x*100. GO TO 120
33 IF INKEY $ < > " ” THEN PRINT RT
9030 LET p fx= (z + in) *8+4
10,9. FLRSH l.-FRLSfl PARTENZA!"
' FLRSH 0:" RSPETTR LR SCRI
9100 INK i
TTh fgàfn BEEP 3.-20 CLS : GO
9110 PLOT p x , p y : DRRU ix,iy
9120 BEEP .125, INT i.RND*60)-20
40 POKE 23674,0. POKE 23673,0:
9130 PLOT px,py: DRRU ix,iy
POKE 23672,0
9140 BEEP .125, INT (RND*60)-20
50 PRINT RT 10,14; PRPER 7, "HE
9150 PRINT FLASH 1; RT 10,in+z;z*
^*60 IF INKEY $=" " THEN GO TO 60
9160 NEXT z
70 LET t=6S536*PEEK 23674+256*
9130 BRIGHT 0: OUER 0
PEEK 23673 +PEEK 23672-1
9190 PAUSE 400: RETURN
144
MCmicrocomputer n. 38 - febbraio 1985
COMPUTEHSHOP
LA TECNOLOGIA APPLE E EASY BYTE
cura t li Fabio Schiuttarcllu
Viaggio nello spazio
ili Marco Umiliali - Aligera ( VA )
Il gioco consiste nell’immaginaria esplo-
razione di un'ampia zona dello spazio side-
rale alla ricerca di pianeti abitati. Lo scher-
mo e la tastiera del calcolatore fungeranno
da pannello di comando della nostra astro-
nave attraverso il quale riceveremo le in-
formazioni dallo spazio circostante e con-
trolleremo la nostra rotta. Il gioco non è
grafico, per cui non ci saranno mappe stel-
lari. disegni di pianeti e stelle, basi nemiche
o astronavi: tutto ciò viene rappresentato
in forma numerica e tramite messaggi che
compaiono sullo schermo, come in defini-
tiva potrebbe accadere sul pannello stru-
menti di una nave spaziale che non sia
proprio "deH'ultima generazione".
Per rappresentare lo spazio e quanto in
esso contenuto viene fissato un sistema di
assi cartesiani, ossia di trerellechesi incro-
ciano nel punto di coordinate 0,0.0: ognu-
na di queste tre rette forma un angolo di 90
gradi con le altre, e insieme individuano le
tre direzioni che ci permettono di identifi-
care ogni singolo punto dello spazio. La
direzione destra - sinistra viene identificata
con l'asse X. quella alto - basso con l’asse
Y. quella avanti-indietro con l'asse Z. Lo
spazio preso in considerazione nel pro-
gramma è un cubo avente lo spigolo lungo
16.000. avente un vertice nell'origine e si-
tuato nel primo ottante. I valori utili per le
coordinate vanno quindi da 0 a 16.000.
All'inizio del programma vengono gene-
rate in maniera casuale 50 terne di valori,
rappresentanti le coordinate di 50 oggetti
spaziali: tali valori vengono posti in tre
matrici e in base all'indice viene stabilito il
tipo di oggetto cui le coordinate si riferi-
scono. Poiché la disposizione degli oggetti
avviene in maniera casuale, la loro distri-
buzione non è perfettamente omogenea, e
può capitare di trovare zone di spazio piut-
tosto vuole e altre molto “affollate".
All'inizio del gioco la nave si trova nel
punto di coordinate 0.0.0 e li resta finché
noi non interveniamo agendo sui comandi.
I tasti guida sonoQ.W.E.A.D.S.I primi tre
servono per imprimere una accelerazione
positiva di valore 100 nella direzione di
uno dei tre assi coordinati, rispettivamente
X. Y e Z. I secondi tre svolgono una fun-
zione opposta producendo una accelera-
zione negativa di valore 100 sempre nelle
direzioni degli assi coordinati, facendo
quindi rallentare la nave o anche retroce-
dere.
Una volta impressa una spinta alla nave,
secondo le leggi dell'inerzia, se non inter-
vengono forze esterne questa prende una
velocità che si mantiene costante nel tem-
po. Se diamo più spinte in direzioni diver-
146
MCmicrocomputer n. 38 - febbraio 1985
MCmicrocomputer n. 38 - febbraio 1985
147
2730
2750
2790
2800
2810
2820
2830
2840
2860
2900
2930
2940
2950
2970
2980
2990
GOSUB 2230
GOSUB 2430
GOSUB 1310
RETURN
REM «««BUCO NERO»»»
1F RR= 1 TIIEN 2910
A ATTENZIONE. SCI NEL CAMPO'
GOSUB 590
A*-'Oi GRAVITA’ DI UN BUCO NERO'
COSUB *00
«=50000000
GOSUB 2680
3080 GOSUB 530
3090 A*=STR»<YM)
530
AL-STR9 ( Zh »
3150 C-19
3160 GOSUB 530
3170 GOSUB 680
3100 GOSUB 950
3190 GOSUB 1310
3200 OOSUB 680
3210 GOSUB 950
3220 OOSUB 1310
3230 DI=< <XM-X) '2l (YM-Y) 2XZM-Z>"2)"< 1/2)
3240 IT DI <30 THEN 3800
3250 FOR 0=1 IO 16
3260 DALL SCREEN<0>
32BU CALL SCREEN<4>
3290 A*= 'MINA EVITATA "
3300 R=20
3310 GOSUB 600
3320 GOTO 280
3330 REM «««CAMPO 01 FORZE»»»
3340 CALL IICNAR < 1 9 , 1 .32, 160 >
3350 A*='ATTENZ10NE, CAMPO DI FORZE'
3360 GOSUB 590
3380 VX=INT < UX/3)
3390 VY=INT < VY/3)
3400 VZ=INT (VZ/3)
3410 GOSUB 1310
3420 GOSUB 2230
3430 GOTO 280
3440 REM «"«PIANETA*»*
3450 GOSUB 1310
346D GOSUB 2230
3470 IF SS=I THEN 3600
3490 A* = -SIAMO VICINI A UN PIANETA I “
3500 GOSUB 590
3510 A*="SE TI AVVICINI A DISTANZA
3S30
3540
GOSUB 600
A* = 'INFERIORE A 500 UNITA’
3560 GOSUB 600
3570 A»='PU01 SCOPRIRE SE E’ ABITATO’
3590 GOSUB 600
3610
3630
3690
3710
3720
3760
3770
3780
3790
3800
3010
3030
384U
IF D< 1X300 THEN 3880
IF 0(1X500 THEN 3630
DOTO 280
IF RNDI0.60 THEN 3750
CALL HCHAR<19. 1.32,150»
At="PURTROPPO NON VIENE RILEVATA"
A4=" ALCUNA TRACCIA DI VITA"
R=20
GOSUB 600
A(I >=INT(RND« 14000) «1000
B(I»=INT CRND* 1 4000 ) + 1 000
ECI ) =INT <RND»1 4000 ) * 1000
GOTO 200
CALL HCHAR<19, 1 .32, 150)
A* =" MOLTO BENE, HAI SCOPERTO'
GOSUB 590
A*='UH PIANETA ABITABILE'
R=20
GOSUB 600
A*=-MA DEVI CERCARE ANCORA. '
R=2I
GOSUB 600
GOTO 3700
REM »»»FINE GIOCO»»»
3000 FOR S=1 TO 15
3890 CALL SCREEN(S)
3900 CALL 50UNDC 100, I I0.5«2, -6,G«2)
3910 NEXT S
3920 CALL SCREENC4»
3930 CALL CLEAR
3940 IF ZZ= I THEN 3970
3950 PRINT ' ASTRONAVE DISTRUTTA
3960 GOTO 3990
3970 PRINT " VELOCITA’ SUPERIORE A 4501'
3975 PRINT ' ASTRONAVE ESPLOSA' ::: s s s
4000
4010
4020
4030
4060
4070
4100
NEXT S
CALL CLEAR
GOTO 4150
A*= COMPLIMENTI. IN
PORTATO A"
A*='TERMINE LA TUA MISSIONE.'
A*="NEL TEMPO DI"
R=21
GOSUB 600
4130
4140
4 150
4180
4190
4270
4200
4290
4310
4320
4325
4340
4360
4370
4300
4390
4400
GOSUB 530
A*="PER GIOCARE ANCORA PREMI 5'
GOSUB 600
FOR KK=1 TO 200
CALL KEY<0,K,S>
MCmicrocomputer n. 38 - febbraio 1985
se, la velocità assoluta e reale è la risultante
della somma delle diverse spinte e viene
calcolata con una semplice formula mate-
matica: la velocità limite raggiungibile é di
450 pena la distruzione.
Nel corso del gioco noi non conosciamo
la posizione degli oggetti presenti nello
spazio, ma la navigazione non avviene pro-
prio alla cieca poiché la nave dispone di un
radar: premendo il tasto R questo entra in
funzione, e in un raggio di 3000 unità se-
gnala la eventuale presenza di corpi celesti
e la loro posizione nell'apposita finestra -
radar dello schermo.
Gli oggetti che possiamo incontrare nel-
lo spazio sono stelle, buchi neri, campi di
forza, asteroidi nemici e pianeti.
Le stelle e i buchi neri hanno la caratteri-
stica di possedere un campo gravitazionale
e quindi di esercitare una forza di attrazio-
ne inversamente proporzionale al quadra-
to della distanza. Il raggio di attrazione
delle stelle, (che hanno tutte massa uguale)
è di 1500 unità, mentre quello dei buchi
neri che esercitano una forza molto mag-
giore, è di 2000. È molto difficile riuscire a
sfuggire alla forza di un buco nero, e se si
esita un poco, generalmente si viene di-
strutti. Per rendere più immediata la com-
prensione della direzione in cui agisce mag-
giormente l'attrazione, questa viene scom-
posta come al solito nei tre vettori paralleli
agli assi e il loro valore viene stampato
sullo schermo. Questi oggetti hanno anche
una superficie propria di raggio 300 (stella)
e 500 (B.N.); se la distanza a cui si avvicina
la nave è minore, si viene distrutti.
I campi di forza hanno un raggio di 1500
unità, e sono di ostacolo all'avanzamento
della nave, in quanto ne riducono conti-
nuamente la velocità; una sorta di palude
spaziale: uscirne è soprattutto una seccatu-
ra.
Le basi nemiche, all'avvicinarsi della na-
ve, ne individuano la rotta e piazzano delle
mine; la posizione di queste compare sullo
schermo e il giocatore deve evitarle cam-
biando continuamente traiettoria di volo.
Se la mina è evitata si vede solo un baglio-
re, se si è colpiti si ha un'esplosione in piena
regola.
I pianeti infine sono il vero obiettivo
della nostra missione. Per scoprire se sono
abitati bisogna avvicinarsi ad una distanza
inferiore a 500 unità. Cosi facendo sul vi-
deo comparirà il messaggio di risposta de-
gli strumenti di rilevamento. Bisogna però
porre attenzione a non avvicinarsi ad una
distanza minore di 300 unità pena la colli-
sione con il pianeta.
II programma prevede anche la possibi-
lità di avarie (all'astronave, non al TI 99): i
comandi si bloccano e l'astronave diviene
ingovernabile per un certo numero di unità
di tempo. Il gioco può terminare per com-
pletamento della missione, dopo aver tro-
vato un certo numero di pianeti abitati, o
in circostanze meno felici, in seguito alla
distruzione dell’astronave.
Analisi del listato
130-180: definizione delle tre matrici e
caricamento delle coordinate degli oggetti
spaziali, fornite dalla funzione RND.
190: definisce la formula della distanza
tra due punti dello spazio.
270-340: queste linee sono il nucleo cen-
trale del programma e definiscono il susse-
guirsi delle varie routine fondamentali.
350-510: creazione della maschera di
stampa cioè di quelle parole o simboli che
restano costanti sul video durante il gioco.
530-570: routine per stampare numeri.
580-660: routine per stampare stringhe.
680-940: guida della nave: le righe 700-
720 inibiscono la guida in caso di avaria e
determinano quando questa ha fine.
940-990: calcolo della nuova posizione
della nave nello spazio.
1000-1 160: calcolo delle distanze, verifi-
ca se siamo troppo vicini a qualche corpo
celeste (e quindi distrutti), o se siamo nel
suo raggio d’azione (con rinvio alla relati-
va routine).
1170-1 300: cancella dallo schermo i mes-
saggi non più validi.
1300-1700: aggiorna e stampa i I tempo e
la posizione della nave, la sua velocità e le
velocità assiali (queste ultime solo se sono
variate).
1710-2220: routine del radar: calcola se
c'é qualche oggetto nel raggio di 3000 unità
intorno alla nave; stampa le coordinate e il
tipo di oggetto.
2230-2420: stampa sul video le coordi-
nate di un corpo celeste col quale siamo in
contatto e la distanza della nave da esso.
2430-2560: stampa le forze di attrazione
quando esistono.
2570-2670: siamo vicini a una stella.
2680-2830: calcolo della forza di attra-
zione in relazione alla distanza, scomposi-
zione di questa nei componenti assiali e
determinazione della nuova velocità.
2840-2940: siamo vicini a un buco nero.
2950-3330: siamo vicini a una base nemi-
ca; la routine calcola dove si troverà la
nave dopo due unità di tempo e posiziona
una mina in quel punto, ne stampa le coor-
dinate, controlla se gli passiamo vicino e ci
segnala se ci siamo salvati.
3340-3450: campo di forza; riduce la ve-
locità della nave ad un terzo di quella pre-
cedente.
3450-3860: siamo vicini ad un pianeta;
stampa i messaggi di segnalazione, e se
siamo a giusta distanza stabilisce casual-
mente se il pianeta è abitato o no, dà poi
nuove coordinate al pianeta per evitare che
un giocatore, barando, continui a rivisitar-
lo.
3870-4320: fine del gioco, o per distru-
zione o con esito positivo: stampa i vari
messaggi, azzera le variabili, e invita a gio-
care ancora.
4340-4450: messaggi relativi alla condi-
zione di avaria. Mt
mEmoR Informatica srl
v. Togliatti 4 56030 Perignono Pi
DISTRIBUISCE ÀLLIWGROSSO
IN TUTTA ITALIA
Rpp I © oomputer origino!» oon
sconti riservati per categorie
fino ol 35 % del listino originale
Compatibili 1 00 % mode in itolu
Soonti fino 60^ del solito listino
alcuni esempi:
unita' centrale 64k 640.000
disk-drive slim 330.000
monitor 12“ f.v. 159.000
doppio controller card 66.000
super seriol card+covo 138.000
por allei card standord 66.000
schedo 80 col .+ 64 k 175 .000
. . . e tutte le oltre periferiche.
S0FTURRE garantito;
:contobilita‘ semplificata 240.000
contabilita ' gener ole 290.000
gestione magazzino 230.000
fotturozione integrato 210.000
gestione effetti 90 000
oggiornamenti osstcuroti
:e altri 150 pacchetti in sorgente-
: documentati e facili do usare . ;
sconti ulteriori per chi opera nel
settore e per ordinoz. in g ruppo
listino completo e dettagliato può'
essere richiesto inviando 3.000
Hre in francobolli oppure ordinando
almeno un orticolo in contrassegno
Per dettagli tecnici urgenti :
TELEFONARE allo , 0587_-_61 6 08 4
MATERIALI FORNITI CON
GARANZIA
SODDISFATTI 0 RIMBORSATI
I prezzi non comprendono I* i.v.a.
Apple e' un marchio registrato da
appiè computer ine.
MCmicrocomputer n. 38 - febbraio 1985
149
SCorso di dattilografìa
Nella presentazione del programma, che
"o schermo all'inizio dello stes-
trantisce che seguendo con
i più velocemente da tastiera il
ire per il suo TI 99. A nostro parere
utilità di questo corso di dattilogra-
La disposizione dei simboli
del TI 99 è. tranne poche
quella della tastiera
idard. quella che troviamo
però l'utilità di
Pia va ben oltre.
sulla quasi totalità dei calcolatori, da quelli
tascabili ai più grandi, nonché su alcune
È chiaro quindi che questo corso risulterà
utile non solo a chi vuole "digitare" più
velocemente i suoi programmi sul TI 99.
ma anche e soprattutto a chi per motivi di
lavoro, o studio, o altro abbia a che fare
con una tastiera, facendo risparmiare una
notevole quantità di tempo.
Purtroppo non esiste un unico standard
per la disposizione dei caratteri sulla tastie-
l'rontato la tastiera del calcolatore con
quella di una macchina pi
la tastiera "
si ottengono diret-
mendo il tasto di SHIFT. altri simboli
mancano in un tipo di tastiera e sono pro-
verà ad utilizzarne un'altra, si tratta però
di differenze minori e siamo convinti che
una volta appresa la tecnica il cambiamen-
150
MCmicrocomf
n. 38 - febbraio 1985
mìih ;
S = \ r i 5
5i iUUM I 3 I
:-!!•!*!?
IL ÌM! !
1 1 :
iiiiliii
ili \\i.
liliilìli!
"1 ifìiJ-1 i,
il!! i^CHj i|
MCmicrocomputer n
TI-99MA EXT. BASIC
to di standard non richiederà uno
eccessivo.
il corso, le cui lezioni sono tratte da un
ottimo testo sulla materia, si articola in 20
lezioni; il consiglio dell'autore è quello di
seguire le lezioni nell'ordine e di passare
alla successiva solo quando si è sicuri di
avere "digerito" bene la precedente. Al ter-
mine. per esercitazione, si può richiedere la
lezione numero 0 che, a dispetto del suo
numero d’ordine, è la lezione di ricapitola-
zione su lutto quanto si è studiato.
Il programma è perfettamente autodo-
cumentante e non richiede ulteriori spiega-
zioni; una breve precisazione è invece ne-
cessaria per spiegare il significato dei valori
che compaiono al termine di ciascuna le-
zione. Oltre al numero totale di battute
eseguite, al numero di quelle giuste e di
quelle errate, compare anche sotto la dici-
tura "BATTUTE G/T” il rapporto tra nu-
mero di battute corrette e minuti: una spe-
cie di indice del vostro grado di apprendi-
mento. Accanto, sotto la dicitura "BAT-
TUTE MAX” compare il valore massimo
raggiunto da "BATTUTE G/T" nella cor-
rente sessione di lezioni. Vorremmo infine
attirare la vostra attenzione sulla efficienza
dell’orologio che scandisce il tempo nel
corso della lezione; per capire come funzio-
na dovete osservare le linee 730-810, che
costituiscono il cuore del programma, e
notare come viene aggiornato il valore del-
le variabili P e SEC. MC
Q B DiSCDrn iTl \ferbatim
ORA I TUOI VERBATIM LI POTRAI RICEVERE DIRETTAMENTE
IN CASA O IN UFFICIO
DISCHETTI 5” 1/4
DATALIFE (5 anni di garanzia)
SFDD 4.500
SFDD (conf. da 2 dischi) 10.000
DFDD 5.500
VEREX (1 anno di garanzia)
SFDD 3.800
DISCHI 8”
DATALIFE (5 anni di garanzia)
SFDD 6.000
DFDD 6.800
VEREX (1 anno di. garanzia)
SFSD 4.300
DFDD 5.900
CLEANING KIT 5" 1/4 20.000 - 8” 22.000
DISK DRIVE ANALYZER
Per IBM e compatibili 65.000
Per APPLE e compatibili 65.000
Prossima disponibilità dischetti o
Indirizzare le richieste a: DISCOM aro
SCHERMI ANTIRIFLESSO PER MONITOR
9” 23.000 12” 25.000
CONTENITORI PORTA FLOPPY 5" con
chiave
da 10 Floppy
da 50 Floppy
da 90 Floppy
MONITOR
Color 14” audio
Fosfori V. 12” audio
COMPUTER PROTECTOR
Copritastiera plexiglass 64-Vic 20
STAMPANTI
Mannesman Tally Spirit
Joystick Spectravideo
Quick shot II con fuoco automatico
Tutti i prezzi sono al netto di IVA nella mis
spedizione. Si effettuano spedizioni in tutta
contrassegno.
SCONTI PER FORNITURE
13.000
31.000
42.000
I 3 ” 1/2
- Via della Pineta Sacchetti 163 - 00168 ROMA - g 06/6290841- 6279132
152
MCmicrocomputer n. 38 - febbraio 1985
Elenco del software disponibile
su cassetta o minifloppy
Per ovviare alle difficoltà
incontrate da molti lettori
nella digitazione dei listati
pubblicati nelle varie
rubriche di software sulla
rivista, MCmicrocomputer
mette a disposizione i
programmi più significativi
direttamente su supporlo
magnetico. Riepiloghiamo qui
a fianco i programmi
disponibili per le varie
macchine, ricordando che i
titoli non sono previsti per
computer diversi da quelli
indicali.
Il numero della rivista su cui
viene descritto ciascun
programma è riportato
nell'apposita colonna;
consigliamo gli interessati di
procurarsi i relativi numeri
arretrati, eventualmente
rivolgendosi al nostro Servizio
Arretrati utilizzando il
tagliando pubblicato in fondo
alla rivista.
Per l’ordinazione inviare l'importo (a
mezzo assegno, c/c o vaglia postale)
alla Technimedia srl, Via Valsolda
135, 00141 Roma.
Le cassette utilizzate sono Basf C-60
Compusette II; i minifloppy sono
Basf singola faccia singola densità.
Prezzo ! Hote
APPLB I
DA2/00
DA2/01
DA2/02
DA2/03
DA2/04
DA2/05
DA2/06
DA2/07
DA2/08
Shape Tablet 22
Hotomuro 26
&DBBUG 26
BDIT + IHPUT 29
Basic modulare 34
AMBA Animation Lang. 35/37
Miniset + Leva-DOS 37
27 programmi grafici 38
Adventure Bditor 38
COJOCODORB 64
15000
15000
15000
15000
15000
15000
15000
30000
15000
Briscola
Serpentone
Othello
Chase
Spreadsheet
Bilancio familiare
The dark wood
Totocalcio: si
Orchetes
Vordprocessor
Hellcopt
Spreadsheet
ADP Basic
Vordprocessor
■id.
30000
17000
17000
17000
17000
17000
17000
15000
15000
15000
COJOIODORE VIC-20
VIC-Kaze
Pie-Man
Briscola
Grand Prix
Frogger
CVC/01
CVC/02
CVC/03
CVC/04
CVC/05
CVC/06
CVC/07
CVC/08
CVC/09
CVC/10
CVC/11
CVC/12
DVC/01 BXMA
VIC-qulz
Zigurat
Bxtended Basic
17000 !
17000 !
17000 !
17000 !
17000 !
23000 !
17000 !
17000 1
17000 !
17000 !
17000 !
17000 !
Conf ig . base
Config. base
Conf ig . base
Conf ig . base
RAM: almeno +
RAM: t 16 X
RAM: + 16 K
Config. base
RAM: almeno +
Config. base
RAM: t 16 K
Config. base
15000 ! RAM: H
SIHCLA1R SPBCTRDM
CSS/04
CSS/05
CSS/06
TRI LAB
SBT di caratteri
Grafica TRBDIM
Ippica
Graphlc-Comp
Macchina del tempo
Piramide di lunnub
Over Basic
Prospettiva
17000 ■
17000 !
17000 !
17000 !
17000 !
17000 !
17000 !
17000 !
17000 !
TEXAS TI -99/4 A
!
CT9/01
CT9/02
CT9/03
CT9/04
CT9/05
CT9/06
CT9/07
CT9/08
Macchina del tempo
Simon
Babilonia
Labirinto 3D
Piramide di Iunnuh
Scrabble
Bquo canone
17000 !
17000 !
17000 !
17000 !
17000 !
17000 I
17000 I
17000 !
Sxtended Basic
‘ C per le cassette, D per i minifloppy
MCmicrocomputer n. 38 - febbraio 1985
153
•a di Fabio Marzocco
liuti. Ovviamente con le dovine e pesanti limita-
zioni. Muri li l 'alcrio Arbotinn è riuscito ad imple-
mentare sul pocket Sharp una sorta di milze -
adventure dal nome "Minotauro". Il gioco è scrit-
to completamente in Basic c la sua prima installa-
zione in memoria putì causare dei problemi per il
riempimento di unu matrice di dati, ma possiamo
dire che la latit a sarà poi felicemente ripagata da!
I Minotauro
di Marco Valerio Ar bolina - Roma
Descrizione del gioco
All'inizio del gioco ci si irova all'ingresso di
un labirinto dove sono nascosti dieci tesori. Per
uscire dal labirinto non busta trovare la strada
giusta ma occorre anche trovare i dieci tesori
nascosti. Il giococcomplicatodalla presenza nel
labirinto di un certo numero di mostri, due ra-
gni. due vampiri, due draghi e il Minotauro, per
affrontare i quali si possono usare delle armi
disperse anch'essc nel labirinto. Per nani mostro
occorre usare un'arma specifica, il DDT per i
ragni, l'aglio per i vampiri, delle lance per i
draghi e una spada per il Minotauro: inoltre nel
labirinto è nascosta anche una corazza che pro-
tegge da ragni e vampiri mentre può proteggere
dai draghi solo una volta dopo di che va in pezzi.
Contro il Minotauro la corazza è inefficace.
E importante ricordare che non si può portare
più di un'arma per volta, oltre, eventualmente,
la corazza.
Si ricevono punti per ogni tesoro o arma tro-
vati e per ogni mostro ucciso, oltre ad un premio
se si riesce a portare a termine il gioco mentre si
perdono dei punti se si rimane uccisi dai mostri.
Le istruzioni disponibili sono:
PRENDI (tasto P). permette di raccogliere un
tesoro, un'arma o la corazza che si trovi nello
stesso punto in cui si trova il giocatore; se si
chiede di raccogliere un'arma quando se ne por-
ta giù una la cosa risulta impossibile.
LASCIA (tasto L), permette di lasciare nel
luogo in cui ci si trova un oggetto, in seguilo a
questa istruzione il programma chiede cosa si
voglia lasciare c lo deposita, a meno che non ci
20: "A" .‘PAUSE "Uuo
ete nel 1 ab i r i
e pero dal Min
z i one (L)ascia
! 1 p i fi t ini ]7 ; np
rii n nneh p 11
ot auro. 1
e " : PR] N f ' i i
i ?<S/N) " : R*=
1 ] 0: PR I NT "le armi
120: PRINT "Sul dis
struzione din
INKEY* : IF R*<
necessarie pe
play sara indi
ventar i o, "
>"S" AND RS< >"N
r": PRI NT "comb
cat a"
350: PRINT "che inf
"THEN 20
atter 1 i . De 1 1 a
1 80: PRI NT " la pres
orma de 1 numer
30: IF R*="N"THEN
enza di oggett
o" .‘PRINT "dei
"CHAIN"
120: PRJNT "per i u
i ": PRINT "o, pu
tes or 1 trovat i
40: PRI NT "Per and
amp i r i , i 1 DDT
rtroppo per uo
e dell"
are avant i <EN
per i " : PRI NT "
i , d i "
360:PR1NT "arma in
TER>"
ragn i > de 1 1 e la
190:PRINT "mostri
vostro posses
50: PR I NT "Siete a
ne 1 1 uogo i n c
so"
1 1 ingresso di
p R]NT "dragh !,
u i " : PRINT "vi
320: PRINT "Attenzi
un" : PRINT "la
e una"
trovate. Ino ! ir
one, non potè- 1
birinto.Per us
1 30: PRI NT "sola sp
e saran-"
380: PRINT "te lasc
ciré dov- "
ada per combat
200: PRINT "no indi
iare un oggett
60:PRJNT "ete tro
t ere " : PRI NT "I
cat e le direzi
o" : PRINT "dove
vare dieci tes
1 M i notauro. " :
on i ":PRINT "in
ce ne g i a un
ori": PRINT "eh
PRINT "Potete
cui potete mu
"SPRINT "altro
e vi servi rann
portare con vo
avere "
o a paga-”
i "
300: PRINT "<N, S, E,
390: PRINT "Avrete
20: PR 1 NT "re i 1 p
1 40: PR I N T "solo un
0) e la eventu
punt i per ogni
edagg io r i eh i e
arma. " : PRI NT
al e "SPRINT "pr
"SPRINT "tesor
s t o" : PR] NT "da
"Ino 1 tre ne 1 1
esenza di most
o t rovat o, per
abirinto e"
ri da"
ogm'
! 1 e " : PRI NT "us
150: PRI NT "nascosi
310: PRINT "qualche
400: PR I NT "arma tr
c i t e . ”
a un armatura
parte nelle i
ovata e" SPRINT
80: PRI NT "Attenzi
che " : PRINT "vi
m-" : PRINT "med
"per ogn. most
one pero! Nel
proteggerà da
late vici nanze
ro uc-" SPRINT
1 ab i - " : PRI NT "
i ragni, ’ :
CM). "
1 ciso, piu un p
rinto sono in
PRINT "dai s/am
320: PRINT "Le istr
rem i o se '
agguato"
pini e "
uzioni che pot
410:PRINT "portate
90:PRINT "due rag
1 60: PR I N T "dai dra
et e " : PRINT "da
a t erm ine il"
n i , due dragh i i
gh i , ma i dragh
re sono: la dir
SPRINT "gioco.
due " : PR1NT "ua
i " : PRINT "la f
ez i one"
"SPRINT "Buon
mp 1 r i e ow i am
anno cadere in
330: PRINT "del mov
d i vert i ment o ! "
ent e " : PRI NT "i
pezz i " : PRI NT
i mento, N, S, E o
980: "CHAIN": PAUSE
1 Minotauro"
"sub i to dopo. "
0" : PRI NT ■ 1 I
"Sto caricando
1 00: PRI NT "Per uos
165: PRINT "L armat
struzione <P)r
tra fortuna tr
ura non u i prò
end i , "
990: CHAIN "MINOTAU
ove-" : PR J NT "r
t eg- " : PRINT "g
340: PRINT "1 istru
RO", 1010
154
MCmicrocomputer n. 38 - febbraio 1985
MCmicrocompul
- febbraio 1985
155
156
MCmicrocomputer n. 38 - febbraio 1985
sia già qualcosa nello slesso posto oppure che
l'oggetto che si vuole lasciare non sia inizialmen-
te in possesso del giocatore.
INVENTARIO (tasto I). elenca il numero dei
tesori, l’arma ed. eventualmente, la corazza in
possesso del giocatore.
NORD.SUD.EST.OVEST (tasti N.S.E ed
O). spostano il giocatore di una posizione nella
direzione indicala a meno che in quella direzio-
Durante il gioco vengono visualizzale sul di-
splay delle informazioni, e cioè: sulla sinistra
può comparire un messaggio che indica la pre-
senza nel luogo in cui ci si trova di un oggetto o
di un mostro, se ci si trova con un mostro si
possono verificare ire casi, o si dispone dcll'ar-
ma adatta e quindi il mostro viene considerato
ucciso, o si dispone della corazza ma non dell'ar-
ma adatta e allora si può passare incolumi se il
mostro non è il Minotauro (ma se il mostro è un
drago si perde la corazza), infine ci si può trova-
corazza ma contro il Minotauro) c allora si ri-
mane uccisi ed il gioco ha termine. Al centro del
display può comparire la lettera M che indica la
presenza di un mostro, ma senza specificare di
che tipo, in una delle quattro posizioni adiacenti
al giocatore.
Infine sulla destra vengono indicate le direzio-
È conveniente costruire, mano a mano che si
avanza nel labirinto, una mappa, tenendo pre-
sente che il labirinto è rappresentato come una
matrice di 35* *35 caratteri e quindi di 35*35
caselle.
Caricamento del programma
Il programma può girare solo se si ha a dispo-
sizione una espansione di memoria (quella da 4
K è sufficiente).
Il tutto è suddiviso in tre parti che vanno
registrate su cassetta di seguito. La prima parte
(listato I ) contiene le istruzioni del gioco e prov-
vede a caricare e far partire il programma vero e
proprio (listato 2) che va registrato sotto il nome
di "MINOTAURO", Infine il programma prin-
cipale provvede a caricare i dati necessari a defi-
nire il labirinto che vengono registrati con la
variabile BS (34.34) *1. e con il nome “MINO -
DATI”. Questi dati sono riportati nel listato 3.
Una volta registrale le tre parti è sufficiente far
partire la prima dopodiché il caricamento e l'e-
secuzione proseguono automaticamente. Alter-
nativamente c possibile eliminare la prima parte
e far partire direttamente il programma princi-
Descrizione del programma
La prima parte si compone semplicemente di
una serie di istruzioni PRINT che elencano le
istruzioni, e termina con una istruzione CHAIN
che permette il caricamento e l’esecuzione auto-
matica del programma vero e proprio. All'inizio
del programma (righe 1010- 1015) si definisce la
matrice BS(34,34)*I e si caricano i dati dalla
cassetta. I muri sono rappresentati dal carattere
* mentre i passaggi sono rappresentati da uno
spazio e le uscite dalla lettera U. Nelle righe 1 020
- 1060 si distribuiscono in maniera casuale i
mostri, i tesori, le armi e la corazza, rappresenta-
ti da varie lettere ( R per i ragni, V per i vampiri.
D per i draghi. X per DDT, L per le lance. A per
l'aglio. M per il Minotauro. S per la spada, C per
la corazza, T per i tesori). La subroutine “CU”
determina casualmente una casella del labirinto,
controlla che non sia già occupata da qualche
software
SHARP PC-1S00
cosa e quindi restituisce le coordinate I c J di un
punto vuoto del labirinto. Nella riga 1070 viene
definita la variabile D$(0)* 25 che conterrà i
messaggi di volta in volta presentati sul display.
Nelle righe 1080 - 1200 si controlla se c'è
qualcosa nel punto in cui si trova il giocatore e se
c'c si va alla opportuna subroutine che inserisce
nella variabile DS(0) un messaggio c. se ci si
trova in presenza di un mostro, determina l'esito
dello scontro.
Queste subroutine sono contenute nelle righe
10100 - 10900. 19000 e 21000 - 21020.
Dopo il return dalla subroutine il programma
salta alla riga 1210 (“STA"), che provvede a
cancellare il display, a richiamare la subroutine
“ DIR" (righe 19100 - 20080) che determina le
direzioni in cui si può muovere e la presenza di
mostri e completa con queste informazioni la
stringa D$(0), e infine presenta la DS(0) sullo
schermo.
Le righe da 1220 a 1290 provvedono ad accet-
tare i comandi del giocatore e a chiamare le
subroutine opportune per l'esecuzione di questi
comandi ( righe 1 1 000 - 1 8020). Infine si ritorna
alla riga 1080 (“MAST") che fa riprendere il
ciclo.
Se nel corso del gioco si raggiungono le condi-
zioni necessarie alla fine (il giocatore muore o
raggiunge l'uscita con dieci tesori) si arriva alla
riga 1300 (“END”) che mostra il punteggio e
chiede se si vuole giocare ancora.
Prima di rispondere, affermativamente a que-
sta domanda occorre però riportare la cassetta
in posizione tale da permettere il nuovo carica-
mento dei “MINO - DATI". MC
vìa c.salEntìna E1 - 7ID4-5 laverann
IL NOSTRO COtlPUTCR CONPATIBILC CON TUTTI
I FRUTTI ■ .UI SORPRGHDCRfl ’ ANCORO DI PIU ' .
> per voi I ’harduare piu’ sof i st- i cato . . •
e tanto softuare già’ di spon ibi I e •
£ 'RSSZSTE/V2R TEEWZCR MOSCE Dfì OLTRE
DTE ET OtVtVZ DT PROGETT RZZO/VT ELETTRO, VZCHE
ta I .0035/aE503a tlx.EEBElB libale i
MCmicrocompuler n. 38 - febbraio 1985
157
“THE MAGIC BOX”
XL 80* Arricchisce l'intelligenza del vostro Commodore
L'XL 80 è una unità di espansione per il
computer Commodore che offre una serie
di caratteristiche professionali solo riscon-
trabili in computer più costosi.
Una volta inserito nella - Cartridge port » del
Vs/Commodore. L'XL 80 Vi fornirà un'usci-
ta video ad alta definizione di 25 linee a 80
colonne oppure di 25 linee a 40 colonne.
Il « Firmware » dell'XL 80 rende il Commo-
dore di un 20% più veloce liberandolo da
molte funzioni di « house-keeping ».
Inoltre, può fungere da « terminal emula-
tor », il che significa che il Vs/Commodore
può essere utilizzato come terminale ad 80
colonne di un « Mainframe computer » op-
pure come servizio di » time-sharing ».
In più, il sistema Vi viene fornito con un con-
sistente pacchetto il sofware completo di
» auto-start menu »
Il » Word Manager » è veramente amico Vo-
stro. Ha una caratteristica speciale; una stri-
scetta da posizionare sulla tastiera del
Vs/Commodore per facilitarvi la scelta del-
le varie funzioni.
Il » Word Manager » raffigura sullo schermo
il documento esattamente come sarà stam-
pato, cosi non occorre fare prove di stampa
per vedere come verrà il documento.
Per la compilazione dei testi, c’è una carat-
teristica professionale che Vi permette di in-
serire parole o frasi — una caratteristica che
taglia la riga al punto che volete per inseri-
re quel che volete.
È disponibile anche un programma » Mailing
List » (indirizzario) su disco e questo può
operare in combinazione con » Word Mana-
ger».
Alcune caratteristiche importanti del » Word
Manager » sono:
— File di 4 pagine
— Editing completo
— Block Move e Copy (spostamento o co-
pia di blocchi di testo)
— Ricerca e sostituzione di parole e di bloc-
chi di parole
— Margini e tabulati
— Centramento automatico
— Allineamento del margine sìa a sinistra
che a destra
— Selezione stampante
— Compatibile con Seria! e RS-232
Il •• Pian Manager » è uno spreadsheet pro-
fessionale completo di un » Help screen ».
Lo spreadsheet Vi permette fino a 63 colon-
ne e 254 righe per i calcoli ed ha un pro-
gramma completo « What If ».
Sono disponibili funzioni matematiche com-
plete come addizioni, sottrazioni, moltiplica-
zioni, divisioni ed operazioni negative, am-
montare di riga o di colonna, minimi, mas-
simi, conteggi, calcoli esponenziali, logarit-
mi, percentuali, integrazioni ed approssima-
li » Pian Manager » permette l'allineamento
dei titoli, permette di variare la larghezza del-
la colonna; dispone della funzione di repli-
care, copiare e cancellare.
I rapporti finali possono essere stampati sia
su stampante di serie che su stampante
RS-232, ed é disponibile anche la funzione
grafici a barre.
Insieme all'XL 80 è provveduto un pacchet-
to di software con programmi » Utility » per
RS-232 e duplicazione dischi.
■ Funziona con Commodore 64. con disk-drive 'Sai e
TRANSUMACI
INTERNATIONAL
L'XL 80 è prodotto negli Stati Uniti ed è importato e distri-
buito esciùsivamente dalla
TRANSIMAGE INTERNATIONAL Srl - Computer Division.
V.le Umberto Tupini 103, 00144 Roma (Eur) - Italia
Tel. (06) 59.18.846 TLX 612619 TI ROMA I
di Pierluigi Pan un zi
Dopo aver analizzalo nelle prime due pun-
tale di questa rubrica le caratteristiche dei
due tipi di file ( sequenziali e randont) previ-
sti dall' M BASIC, in questa terza puntala
presentiamo un programma di esempio, uti-
lizzante tulli e due i tipi di file ed un certo
numero di istruzioni deli' M BASIC che ab-
biamo conosciuto nelle precedenti puntate.
Diciamo subito che si tratta di un archivio
di dati, quasi un "mini-database" dal mo-
mento che non vi sono solo le funzioni di
input e di output, ma anche un primo abboz-
zo di funzione di ricerca. Evidentemente non
è un programma completo di tutte le raffina-
tezze presenti in altri database, ma può ser-
vire di aiuto ai lettori che volessero intra-
prendere lo studio di tale problematica.
Un data base per
archiviare i programmi di MC
Con questo programma, è il caso di dir-
lo. uniamo l'utile con il dilettevole, in
quanto vedremo un'applicazione pratica
delle nozioni fin qui apprese ed inoltre av-
remo già le basi (funzionanti!) di un archi-
vio di lutti i programmi pubblicati da
MCmicrocomputer a partire dal n“l.
Vedremo via via quali sono stati i ragio-
namenti che hanno portato a certe scelte di
programmazione (ad esempio il perché
della convivenza in un unico programma
di due file, uno sequenziale e l'altro ran-
dom). in base alle caratteristiche iniziali
che il nostro archivio doveva avere.
Vediamo dunque tali caratteristiche: re-
cord formato da quattro campi per un to-
tale di 32 byte per record. I quattro campi
sono rispettivamente:
- MCS. campo indicante il numero intero
della rivista. 2 byte.
- AS. campo indicante l'argomento. 26 by-
- C$. campo indicante il codice del eompu-
- LS. campo indicante il codice del lin-
guaggio. 2 byte
In particolare si può vedere che. a parte
il campo relativo all'argomento che è ov-
viamente una stringa di caratteri, i rima-
nenti campi conterranno una coppia di by-
te rappresentativi di tre quantità numeri-
che intere: mentre sulla prima non c’è nulla
da dire, in quanto si tratta del numero della
rivista, per le altre due si può già vedere
una prima scelta per snellire la fase di input
di dati. Si è infatti scelto di codificare sia il
computer che il linguaggio di programma-
zione con un valore intero, per non essere
costretti, in fase di input dati, a scrivere per
esteso il nome di un certo computer per
tutti i record che lo prevedono: in questo
A=-
modo (e lo stesso discorso vale per i lin-
guaggi) si è anche risparmiato moltissimo
spazio del record, spazio che secondo le
considerazioni delle puntate precedenti era
pure difficile da stabilire con precisione.
Osservando ad esempio la routine tra le
linee 800 e 860 si può vedere che se si deve
impostare un codice di un nuovo computer
basta semplicemente impostare il valore 0
e poi, a seguito della richiesta dei nome
effettivo, rispondere (e solo quella volta!)
con il nome completo, al massimo di 26
caratteri.
Automaticamente questo nuovo nome
viene accodato all'elenco dei nomi prece-
10 CLEAR 2000:CL5:PRINT iPRINT :PRINT :PRINT" iniziai i zzazi one. . . ":PRINT:PRIHT :PRINT
20 NC=30:REH numero aax coaputer
30 NL=10:REM nuaero aax linguaggi
« DIM COt(NC) .LliINLÌ
50 OPEN 'r', HI, -archivio’, 32
60 FIELD HI, 2 AS MCt.26 AS Ai, 2 AS Ci, 2 AS Li
70 GEI H1,1:IF CVI(NCÌ)=0 GOTO 180
80 PRINT'lettur a vettor i . . :0PEN ’i \H2, 'vettori '
90 INPUTH2 , NRX , NCX , NLZ : REM n.record,n.coaputer,n.l mguaggi
100 IF < NCZ ( =NC ) ANO (NLX(=NL) GOTO 150
110 PRINT'n. coaputer =';MCZ
120 PRINT'n. linguaggi =";NLX
130 PRINT'correggere i valori di nc e ni'
140 CL0S£:END
150 FOR 1=1 T0 NCZ : INPUTH2 , COi < I ) : HEXT : C0i ( 0 > =STR i ( NCZ )
160 FOR 1=1 T0 NLX:INPUTR2,LIÌ<I):NEXT:LIÌ(0)=STRi<NLZ>
170 CL0SER2
180 Vi(1)='n. rivista '
190 VÌ(2)='argoaento
200 VÌ(3)='coaputer
210 Vt(4)='l inguaggio
220 CLStPRINT' aenu'tPRINT' ====':PRINT
230 PRINT' 1 - input dati '
240 PRINT’ 2 - ricerca'
250 PRINT' 3 - correzione"
260 PRINT' 4 - output generale'
270 PRINT' 0 - f ine':PRINT
280 INPUT ' sce 1 1 a ' ; SCZ : SCZ=ABS ( SCZ ) : IF SCZÌ4 GOTO 280
290 0N SCM GOTO 500,1000,1500,2000,2500
500 OPEN '0',2,'vettori'sPRINT'salvataggio vettori...'
510 PRINTH2,NRX,CINT(VAL(C0i(0))),CINT(VAL(LIÌ(0))>
520 FOR 1=1 T0 VAL(COÌ(O)):PRINTH2,C0i(I):NEXT
530 FOR 1=1 T0 UAL(LIt(0)):PRINTH2,LIÌ(I) :NEXT:CL0SE:EN0
600 CLSiPRINTViC 1 ) ; : INPUT NZcLSET MCÌ=MKIÌ(NZ) sRETURN
700 CLS:PRINTVÌ(2)i: INPUT ARitLSET Ai=ARi:RETURN
300 CLS:CX=VAL(C0t<0>)
810 IF CX=0 GOTO 850
820 PRINT'codice coaputer *:F0R 1=1 TO CX:PRINTI,C0i<I):NEXT
830 INPUT'codice coaputer (0=nuovo> ' ; C0Z : C0Z=ABS ( C0Z > : IF COZJCZ GOTO 830
MCmicrocomputer n. 38 - febbraio 1985
159
denti e mostrato quando si imposterà il
record successivo.
Questo fatto di codificare i nomi dei
computer c i linguaggi ha però comportato
la necessità di tenere memorizzata da qual-
che parte la tavola di corrispondenza tra il
numero ed il computer e/o il linguaggio:
dato che queste informazioni stavano co-
modissime in due vettori, ecco che si è deci-
so di creare un apposito file sequenziale di
appoggio: badate bene, è sequenziale e non
random per il solito motivo che non si
conosce a priori la lunghezza del nome del
computer e del linguaggio.
Tra l'altro bisognava registrare su disco
anche altre tre informazioni numeriche,
che non potevano essere poste in un record
del file random: innanzitutto il numero di
record del file random nonché il numero di
computer e di linguaggi usati nella codifi-
ca. questi ultimi due valori essendo ovvia-
mente la dimensione dei due vettori, che
nel programma si chiamano COS (.) e LIS
(. /Trascurando quelle che sono le parti di
"abbellimento” dell'output su video, an-
diamo ad analizzare il programma.
Il programma
Innanzitutto nelle righe 20 e 30 vengono
poste rispettivamente a 30 e IO le dimensio-
ni dei due vettori di cui sopra: questo per
dare un valore all'interno della successiva
DIM.
Se per caso si avesse sentore che tali
valori fossero troppo piccoli basterà sem-
plicemente aumentarli nelle due linee cita-
Alle linee 50 e 60 abbiamo rispettiva-
mente l'apertura del file "archivio” e la
definizione dei suoi campi.
Alla linea successiva vediamo un utilissi-
mo trucco programmativo. In particolare
si va a leggere il primo record e se il campo
MC$ (cioè il numero della rivista) viene
trovato a 0 si salta alla linea 180. e cioè si
salta una parte di programma.
Vediamo il significato di questo trucco:
all'inizio, subito dopo aver digitato il pro-
gramma, il file “archivio" non esisterà an-
cora, cosi come il file “vettori".
Con l'istruzione OPEN della linea 50
inizializzeremo tale file che conterrà byte
nulli in ogni campo di ogni suo
record. Ecco che il campo MCS conterrà
perciò un valore nullo, ben differente da
qualsiasi valore a regime (diverso da zero).
Questo fatto è dunque sfruttato per far
riconoscere al programma che il file “ar-
chivio” è vuoto. Attenzione però a non
mettere deliberatamente nel primo record
un numero di rivista pari a 0, in quanto
comporterebbe la cancellazione di tutti i
record registrati quando rielaboreremo il
programma in un secondo tempo.
Tutto questo perché quando il file è vuo-
to sono vuoti anche i vettori e sono nulle le
tre quantità numeriche già viste prima: in
definitiva il file "vettori”, come già visto,
non esiste nemmeno.
Invece nella linea 80 troviamo una O-
PEN relativa a tale file: va da sé che. se non Litsting del programma che utilizza un file random per l'archivio ed uno sequenziale per I vena
840 IF COZUO GOTO 860
850 CZ=C2+1 :C0$ Ì0)=STR$(CZ) :PRINTV$ (3) ; : INPUT C0*(CZ) :C0Z=CZ
860 LSET C$=hKI*(COZ):RETURN
900 CLS:LZ=VAL(LI*(0>)
910 IF LZ=0 GOTO 950
920 PRINT'codice linguaggio':FOR 1=1 T0 LZ:PRINTI,LI*U):NEXT
930 INPUT'codice linguaggio (0=nuovo> ';LIZ:LIZ=ABS(LIZ):IF LIZ)LZ GOTO 930
940 IF LIZOO GOTO 960
950 LZ=LZ* 1 :LI* <0 ) =STR» ( LZ ) : PRINTV$ ( 4 ) ; : INPUT LI»(LZ):LIZ=LZ
960 LSET LÌ=NKI*(LIZ>:RETURN
1000 G0SUB 600 : G05UB 700:G0SUB 800.-G0SUB 900
1010 CLS:PRINT'nuiero record';NRZ
1020 PRINT'1 - ';V$(1);NZ
1030 PRINT'2 - 'iV*(2);AR1
1040 PRINT'3 - *iV*(3);C0*(C0Z)
1050 PRINT'4 - ";V$(4);LI$(LIZ)
1060 IHPUT-ok (s/n)'tR*:IF Rt=V GOTO 1090
1070 IF RBOV GOTO 1060
1080 G0SUB 1200
1090 NRZ=NRZ+1:PUTB1,NRZ
1100 INPUT’ancora record (s/n)';R*:IF R$=*s* GOTO 1000
1110 IF RtOV THEN 1100
1120 GOTO 220
1200 INPUT'n.caapo errato' ;CEZ:CEZ=ABS(CEZ) : IF (CEZ=0> OR (CEZ>4) GOTO 1200
1210 0N CEZ G0SUB 600,700,800,900
1220 RETURN
1300 PRINT:PRINT'preai un tasto per continuare"
1310 R*=INKEYI:IF R$=" THEN GOTO 1310 ELSE RETURN
1400 CLS:RIZ=0:F0R J=1 T0 4:PRINTV*( J) , :NEXT:PRINT:RETURN
1500 CLStPRINT" ricerca"
1510 F0R J=1 T0 4:PRINT" ";J;" - per ";V»(J):NEXT
1520 PRINT" 0 - ritorno al aenu'
1530 PRINT
1540 INPUT'scelta';SZ:SZ=ABS(SZ>:IF SZ>4 GOTO 1540
1550 IF SZ=0 GOTO 220
1552 IF SZ=3 THEN PRINT'codice coaputer':F0R 1=1 T0 VAL<C0*(0)):PRINTI,C0»(I):NEXT
1554 IF SZ=4 THEN PRINT'codice linguaggio'.-FOR 1=1 TO VAL(LI*(0> ) tPRINTI ,LI* ( I ) :NEXT
1560 PRINTVt(SZ) ; :INPUT S»
1570 G0SU8 1400
1580 F0R 1=1 T0 NRZ:GET*1,I:0N SZ GOTO 1590,1600,1610,1620
1590 IF CVKHCf )=CINT(VAL(St>) THEN GOTO 1630 ELSE GOTO 1650
1600 IF INSTR(A»,S») THEN GOTO 1630 ELSE GOTO 1650
1610 IF CVI(C$)=CINT(VAL(S»)) THEN GOTO 1630 ELSE GOTO 1650
1620 IF CVI(L*mCINT(VAL(S»)) GOTO 1650
1630 PRINTCVKMC») ,A*,C0$(CVI(C$) ) ,LI$<CVI<L*) )
1640 RIZ=RIZ+1:IF RIZ=20 THEN G0SUB 1300:G0SUB 1400
1650 NEXT:G0SUB 1300: GOTO 220
2000 CLStPRINT' correzione'
2010 INPUT'n. record' ;REZ:6ETR1,REZ
2020 PRINT'1 - ';V»(1);CVI(HC»)
2030 PRINT'2 - ";V»(2);A$
2040 PRINT'3 - ’iV*(3) ?C0*(CVI(C»))
2050 PRINT'4 - *;V*(4);LI*(CVI(L»))
2060 G0SUB 1200: INPUT'ancor a correzioni <s/n)';R»:IF R*=V CLS:GOT0 2020
2070 PUTRÌ, REZ
2080 G0SUB 13OO:G0TO 220
2500 CLS
2510 G0SUB 1400
2520 F0R 1=1 T0 NRZ:GET81,I:PRINTCVI<HCÌ),A$,LEFT»(C0*<CVI(C»)),15),LI»(CVKL*>>
2530 RIZ=RIZ*1:IF RIZ=20 THEN G0SUB 13OO:G0SUB 1400
2540 NEXTtGOSUB 1300:GOTO 220
160
MCmlcrocomputer n. 38 - febbraio 1985
vi fosse il test sul campo MC$, il program-
ma incontrerebbe tale istruzione di apertu-
ra di un file inesistente, fatto che comporta
il blocco del programma stesso per errore.
Invece a regime succede che il valore MCS
del primo record sarà diverso da Q ed allo-
ra si andrà a leggere il file “vettori”. In
particolare si leggeranno il numero di re-
cord, le dimensioni dei due vettori ed i due
vettori stessi senza alcuno spreco di spazio
sul dischetto. È inoltre importante chiude-
re SOLO il file “vettori" subito dopo aver
effettuato questa lettura: questo perchè si
presuppone che la successiva operazione
su tale file sarà una scrittura, per il salva-
taggio dei valori all'atto dell'uscita dal
programma.
Successivamente troviamo l'output del
"menu" con quattro opzioni più quella di
uscita: già a questo punto si possono effet-
tuare le prime migliorie aggiungendo ulte-
In particolare scegliendo l'opzione (J si
va alla routine 500 che prevede il salvatag-
gio delle tre famose quantità e dei due al-
trettanto famosi vettori, dopodiché si van-
no a chiudere tutti e due i file e si esce dal
programma. Ovviamente per effettuare il
salvataggio abbiamo aperto il file "vettori"
in output.
L'input dei dati
La fase di input dei vari record consiste
in quattro piccole subroutine relative ad
ognuno dei quattro campi di ogni record:
non presentano alcuna difficoltà di inter-
pretazione, mentre vi è da notare l'utilizza-
zione dell'istruzione LSET per la memoriz-
zazione dei vari campi.
La ricerca
È questa una parte del programma mol-
to interessante ed utile in quanto consente
di visualizzare, tra i vari record, tutti quelli
che soddisfino una condizione a scelta tra:
- il “numero della rivista"
- l’“argomento"
- il "computer" sul quale gira il program-
- il “linguaggio" di programmazione
In particolare per quanto riguarda la
ricerca per “argomento", si è sfruttata la
potentissima 1NSTR (substringa, stringa):
cioè si può indicare come argomento di
ricerca ad esempio “sort" e subito avremo
visualizzati tutti quei record aventi “sort”
come sottostringa del campo "argomen-
to". Ecco che appariranno ad esempio re-
cord relativi alÌ'“heapsort”, allo "Shell -
Metzer sort" come pure un eventuale re-
cord avente come argomento il "sorteg-
gio”.
Impostando come argomento la lettera
"a”, ad esempio, è facile capire che verran-
no mostrati tutti i record aventi nella strin-
ga “argomento” almeno una “a".
La correzione
Per quest'altra fase molto importante,
basta dire che si deve inserire il numero del
record interessato e subito vi si accederà,
secondo lo stile dei file random: effettuata
la correzione, il record verrà riscritto con
una solita PUT.
L'output generale e le conclusioni
Per ottenere una o più videate di tutti i
record basta eseguire un loop di visualizza-
zione di un record il cui indice va da I al
numero massimo di record presenti nell’ar-
chivio.
Come si è visto, il tutto è stato realizzato
molto semplicemente: ripetiamo che non
era nostra intenzione creare un ennesimo
data - base (che per giunta è alquanto len-
to, dal momento che è scritto in Basic).
Nella prossima puntata analizzeremo
alcune particolarità dell'MBASIC, riguar-
danti l’istruzione PRINT, che forse non
tutti conoscono: anche se esistono nell'in-
terprete originario della Microsoft, in pa-
recchie versioni adattate ai vari personal
alcune caratteristiche si sono “perse per
strada" oppure, e ciò è ancora peggio, sono
presenti, ma “dimenticate" dai manuali.
PROGRAMMA 2000
|NOVlTA' PROGRAMMA 2000 |
Per tutti voi un apposito centro per i vostri .problemi
teletonate al "Software Solution Center" 06/5926442
In regalo il catalogo “Hard-Soft"
PROGRAMMA 2000 anche per Commodore C 16/4 PLUS
I volumi arretrati a lit. 20000
DA PIU' FORZA
AL TUO COMPUTER
in ogni volume troverai
il MANUALE ITALIANO
e la cassetta
di 20 programmi
per il TUO computer
un volume 20000 lire
1.000 LIRE A PROGRAMMA
P 2000
COMMQOORE 64
ìyol 5*
Tutti ì programmi sono listabili !!
I Spedire in busto chiusa a: PROGRAMMA 2000
1 toc. La Macera - 00060 Porse Ilo (Rosa)-- te 1.06/ 5926442
I :
I
I
I
I
I
MCmlcrocomputer n. 38 - febbraio 1985
161
NewFram
PROGRAMMERÀ
handbook
IBM PERSONAL COMPUTER
Assembly Language forthe IBM
Personal Computer
David Bradley
Beginning with thè lundamentals of computer
operatori, this hook completely covers thè assembly
language instructions of thè Intel 8088 and their use
in thè IBM PC.
416pages 13-049171-3 Paper $25.95
Programmer's Guide to MS-DOS
Denn is Jurnp
Fornoviceorintermediateprogrammers. tradltional
character device I/O. non-device Functonal Rie
Management extended function groups and
extended memory management are fullyexplatned.
244 pages 8359-5655-5 Paper $2075
Understanding and Using dBASE II
Revised and Enlarged Edition
R. Krumm
Concise and easy to use. this software guide shows
new users how dBASE II can work for them withoul
goingintounnecessarydetallaboutitscompiexities.
308 pages 89303-916-0 Paper $25.95
IBM PC/XT Graphics Book
John Fowler
Custom-designed for thè IBM PC/XT. this tutorial
addresses thè practical questions of how graphics
work and how to use them. and is full of BASIC
programming examples
Paperback c. 300 pages 13-448408-8 $19 45
Book and disk 13-448416-9 $38.95 (non-
returnable)
APPLE MACINTOSH
Mastering Your Macintosh
A User s Guide to Apple' s Macintosh
Computer
William Skyvington
300 screen displays. practical business programs.
and full coverage of thè Maclntosh's "mouse"
"window” and software packages make this book
ideal for new or potential users of Appie's new
computer.
257 pages 13-559527-4 Paper $13.95
Programming Tips and Techniques
for thè Apple 1 1 and Apple Ile
John Campbell
A guide to thè advanced functionsof thè Apple 1 1 and
Ile which demonstrates how to solve programming
problems
403 pages 89303-273-5 Paper $25.95
Book and disk 89303-776-1 $64.95
Diskonly 89303-782-6 $39.00 (non-retumable)
COMMODORE 64
Assembly Language Programming
with thè Commodore 64
Marvin L deJong
All thè important assembly language topics are
addressed Includlng data transfer, logie operalions,
branches and loops, and programming thè 6581
sound intedace device.
296 pages 89303-319-7 Paper $14 .95
Machine Language
for thè Commodore 64 and other
Commodore Computers
Jim Butterfield
Programmers of all levels are introduced to thè
principles of Commodore machine language — what
it is, how it Works, and how to program with it
326 pages 89303-652-8 Paper $12 95
PROGRAMMING LANGUAGES
The C Programmer's Handbook
Thom Hogan
Revealed in this definitive desktop reference for C
language users is a wealth of Information about
C compilers — complete with documentatìon.
examples, restrictions and defaults.
262 pages 89303-365-0 Paper $16 95
FORTH Programming
Steven Vickers
An introductory guide which explams how to use
FORTH commands for decision making repealing,
performing. arithmetic. sound, graphics and more.
185 pages 13-326356-8 Paper $19.45
LIBRERIA PROGETTO
27/B. 35100 Padova.
i trucchi del CP/M
di Pierluigi Panunti
MBASIC
Ritorniamo, in questo numero, a parlare
dell' MBASIC, dal momento che l'argomen-
to interessa i nostri lettori, ferma restando la
nostra intenzione di continuare a parlare nei
prossimi numeri del BDOS.
Ancora trucchi dell'MBASIC
Un nostro lettore di Milano, Maurizio
Gaiani, ci chiede ulteriori chiarimenti sulla
questione dei "token” e cioè sulle istruzioni
dell'MBASIC, dal momento che l'articolo
relativo sul n°35 di MC risultava non mol-
to chiaro.
Rimediamo subito, ma dopo aver fatto
alcune doverose precisazioni.
Innanzitutto, e lo ricordiamo, stiamo
parlando della “release 5.21" dell'MBA-
SIC, dal momento che era quella a nostra
disposizione (su di un Osbome I) e sulla
quale abbiamo effettuato i nostri studi.
A tal proposito chiediamo ai lettori che
ci scrivono di precisare a quale “release"
fanno riferimento nelle loro domande, in-
dicando anche il personal computer sul
quale lavorano: infatti tra una versione ed
una successiva dell'MBASIC ci sono pa-
recchie differenze.
Detto ciò, ricordiamo anche che la reda-
zione di questi articoli non trae spunto da
alcun testo riguardante l'M BASIC dal
punto di vista "interno", in quanto non
esistono tali testi, almeno a quanto ci con-
sta... Se qualche lettore avesse alcune noti-
zie in merito, è calorosamente invitato a
mettersi in contatto con la redazione di
MC!
Da questo punto di vista non servono
nemmeno i sacri testi della premiata Digi-
tal Research in quanto anche il "BASIC -
80 Reference Manual" non si spinge più in
là di tanto: a questo proposito rimandiamo
i lettori anche alla rubrica "Software
MBASIC". che invece trae parecchi spunti
da tale manuale. Per tutta questa serie di
motivi, alcune informazioni riportate negli
articoli possono essere incomplete se non
addirittura errate, ma in realtà tutte le mo-
difiche finora apportate aU'interprete ori-
ginario hanno funzionato sempre, senza
comportare inconvenienti alle restanti rou-
tine.
Un’altra considerazione è che l'argo-
mento è tanto stimolante quanto enorme-
mente vasto, e solo per i soliti motivi di
spazio a volte si è costretti a troncare un
certo discorso, sperando nella buona vo-
lontà da parte dei lettori. D'altronde per
parlare dell'MBASIC ci sarebbe bisogno
di un volume alquanto ponderoso...
In questo numero ritorneremo perciò
sull'argomento trattato sul n° 35 di MC,
per aggiungere ulteriori informazioni sotto
forma di lunghissime tabelle. Lungi da noi
l'idea di "concludere" l'argomento, anche
perché siamo consci del fatto che ha biso-
gno di essere “digerito" lentamente...
La “Jump Table”
Facciamo riferimento alla tabella I e ve-
diamone il significato. Innanzitutto vedia-
mo che è divisa in due parti: la prima si
riferisce ai “comandi" dell'MBASIC e la
seconda alle “funzioni". Bisogna infatti
pensare che un comando o una funzione
subiscono un diverso trattamento da parte
dell'interprete, durante l’analisi di un pro-
gramma: mentre da un lato un comando
genera un qualcosa di eseguibile (ad esem-
pio PRINT è un comando perché esegue la
stampa sul video di qualche cosa), dall'al-
tro una istruzione "calcola" qualcosa (con-
tinuando nell'esempio precedente l’istru-
zione TAB di "PRINT TAB (IO) ...X" non
genera alcunché, ma viceversa serve a cal-
colare la posizione del cursore, alla quale
poi effettuare la stampa).
È questo l’ovvio motivo per cui l'inter-
prete non gradisce istruzioni del tipo “A =
GOSUB" come pure il comando “SIN
(20)": nel primo caso la GOSUB non potrà
mai fornire ("calcolare") un valore da as-
sociare poi alla variabile A e viceversa la
funsione SIN non permetterà mai di "ese-
guire" alcunché.
Tornando perciò alla prima tabella, an-
diamola ad analizzare. Come si vede è for-
mata da quattro colonne: la prima indica
l'indirizzo di memoria a cui andiamo a
leggere: a parte la prima riga, tutte le altre
avranno valori per l'indirizzo sempre in-
crementati di due, in quanto ciò che andia-
mo a leggere é a sua volta un indirizzo.
Infatti nella seconda colonna vediamo
proprio il contenuto, in forma "leggibile" e
cioè ponendo prima il byte HIGH e poi
quello LOW dell’indirizzo, della cella con-
siderata e della successiva: già qui ci sono
senz'altro delle differenze da una versione
all'altra dell’MBASIC. Però non importa:
basta sapere che quello è l'inizio di una
routine.
La terza colonna indica il valore del lo-
ken dell'istruzione riportata poi in quarta
colonna: come si vede i comandi sono con-
traddistinti da un token maggiore di 80
esadecimale e perciò aventi il bit più signi-
ficativo posto ad “1”.
Mentre le varie righe non comportano
difficoltà di interpretazione; soffermiamo-
ci sulle prime tre.
La prima in realtà non farebbe parte
della tabella dei comandi o istruzioni: è
stata messa lì solo perché il suo indirizzo la
poneva come "capostipite”.
Ed infatti all'indirizzo 0100 (esadecima-
le!) non troviamo una coppia di byte, ma
tre e precisamente C3 71 5D, che disassem-
blati danno "JMP 5D71H". A questo pun-
to rimandiamo al n°34 di MC dove trattia-
mo in (buon...) dettaglio tutto l’argomento
deH’entry point dell’MBASIC.
Andiamo perciò ad analizzare la secon-
da e la terza riga, che fanno riferimento a
due fantomatiche istruzioni “FRCINT” e
"MAKINT": non sono due istruzioni vere
e proprie dell'MBASIC, ma sono molto
utili nelle routine in linguaggio macchina
create dall'utente e richiamabili da pro-
gramma con USR o CALL.
Speriamo di non deludere i lettori dicen-
do che di questo argomento parleremo dif-
MCmicrocomputer n. 38 - febbraio 1985
163
JUHI' MELE DEI COMANDI E DELLE ISTRUZIONI DELL'hBASIC 5.21
Indirizzo Contenuto
Token Comandi; MEASIC
0100
0105
0105
01 OD
010D
oior
ohi
Oli?
0118
0110
011F
0121
0120
013?
01 3B
0130
013F
DUI
0143
0145
Oli;
014?
01 4B
0140
014F
0151
0153
0155
0157
015?
0150
0150
015F
Olii
0163
0169
OlóB
0160
016F
0171
017?
Ù17B
0170
01 7F
01??
01 ?B
0190
5071
C;òu
2?CO
i3FA
1651
43DA
1470
IE1C
22B1
4451
OCC?
OCC?
-.476
44B8
5C04
1610
17F5
0000
0000
247B
OOOC
5?A3
5464
5463
5384
5?AA
Entry pomt dell 'MEASIC
Routine FRCIN1
Routine MAKINT
FOR
NEXT
DATA
INPUT
RE3T0RE
GOSUB
RETURN
REM
STOP
PRINT
CLEAR
LIST
POKE
CONT
al SYNTAX ERROR
al SYNTAX ERROR (STO)
UIDTH
ELSE
TRON
TROFF
SUAF
[RASE
EDIT
ERROR
RÉSUMÉ
DELETE (DEL)
AUTO
RENUH
DEFSTR
DEFINÌ
DEF3NG
DEFDBL
LINE
UMILE
UHEND
CALL
URITE
COMMON
CHAIN
CPTION
RANDOHIZE (RANDOM)
SYSTEM (SYS)
CLOSE
LOAO
«ERGE
TILES
NANE
KILL
LSET
RSET
SAVE
RESET
019F
01 Al
01 A3
01A5
01 A7
01 A?
01 AB
01 AD
01 AF
01B1
01B3
01 B 5
01 B7
01B9
01C3
01C5
01C7
01C?
DICE
D1CD
01CF
OIDI
01D3
0109
0108
01 OD
01 DF
01E1
01E3
01E5
01 E7
DIE?
01 EB
01 ED
01 EF
01F1
01F3
01F5
01 F7
01F?
01 FB
01FD
MFF
493C
496D
4977
36B1
37CE
3B70
26AE
371C
386A
390D
3922
4AEA
1FE3
IDC2
4BCA
468A
4998
48D6
48E6
22A7
491F
467E
4684
1DBC
296B
29E5
2A11
2A5E
Istruzione MBASIC
LEFT»
RIGHT»
MIDI
557 A
562C
5644
514B
5HE
5151
CHR*
PEEK
SPACE»
OCT»
HEX$
LPOS
CINT
CSNG
CDBL
FIX
MKIt
HKS»
MKD»
164
MCmicrocomputer n. 38 - febbraio 1985
VP'M
PUNTATORI AI NONI DEI COMANDI ED ISTRUZIONI
Indirizzo
Punta .
. alla lettera
0207
023B
A
020?
02‘iC
B
0200
024D
C
Q20D
02S7
D
020F
02B0
E
0211
02D5
F
0213
02EB
G
0215
02FD
il
0217
0302
I
021?
031E
J
021B
osir
K
021 D
0324
L
021F
0358
H
0221
0371
N
0223
0384
0
0225
039A
P
0227
03AE
0
022?
03AF
K
022B
C3ED
S
022D
0422
T
022F
043?
U
0231
0442
V
0233
044C
U
0235
0464
X
0237
0468
Y
0239
0469
Z
ALTRE ISTRUZIONI DELL'MBASIC 5.21
Token
Istruzione
Start Addr
All' interno di
CE
T0
—
FOR
CF
THEN
—
IF
00
TAB (
1765
PRINT
01
STEF
—
FOR
D2
USR
IDCC
D3
FN
IE45
DEF
04
SPCl
1765
PRINT
D5
N0T
1D40
D6
ERL
IBCC
-
D7
ERR
1BBB
08
STRINGI
48F4
-
09
USING
3EES
PRINT
DA
INSTR
49BF
DB
—
DC
VARPTR
IBDD
-
DD
INKEY»
4263
-
EF
)
1A7D
Calcolo espressioni
F0
r
1A7D
FI
IA7D
F2
1884
F3
1CD2
F4
*
—
F5
/
—
Fó
—
F7
AND
—
F8
OR
—
Fv
X0R
—
FA
E8V
FB
IHP
—
FC
MOD
—
FD
fusamente in un prossimo numero, nella
rubrica "Software M BASIC" in quanto
riteniamo essere quella la loro collocazio-
ne: tra l'altro nel contesto di questa punta-
ta non c'entravano molto.
Scorrendo la tabella possiamo fare varie
considerazioni, Lo sapevate che l'istruzio-
ne GOTO si può scrivere anche GO TO?
Badale bene che il “GO TO" è l'unica "pa-
rola chiave" che ammette al suo interno
uno spazio: se per caso nel comando met-
tessimo due spazi ( "GO TO“ ) allora l'in-
terprete segnalerebbe errore in quanto tro-
verebbe un "GO" che non riconosce, se-
guito dalla parola chiave “TO" tipica del-
l'istruzione "FOR".
Invece corrispondentemente ai tokcn 9B
e 9C troviamo due salti a 0CC9 e cioè alla
stampa della frase ben nota "SYNTAX
ERROR". Troviamo li questi due salti in
quanto le routine relative ai due token in-
dicati non sono state implementate: ecco
perché tra parentesi abbiamo riportato la
nuova STO. creata da noi. Viceversa ve-
diamo alcuni indirizzi posti a 0000: se per
caso nel corso di un programma l'interpre-
te incontrasse un token il cui indirizzo è
nullo, si avrebbe addirittura il boot del
sistema con ritorno al CP/M.
Inoltre troviamo alcune istruzioni con
segnato tra parentesi il nuovo nome: per
questi casi, come per quello precedente,
rimandiamo alle ultime puntate dei "Truc-
chi del CP/M". Per quanto riguarda le i-
struzioni. troviamo in tabella tutte le fun-
zioni relative alle stringhe, quelle trigono-
metriche. etc. In realtà l'unica istruzione
che potrebbe essere un comando è la
M I DS. ma viene trattata a parte dall'inter-
prete stesso, se per caso viene incontrata in
un programma.
Altre istruzioni dell’MBASIC
Nella tabella 2. che come si può notare è
alquanto incompleta, sono riportate le re-
stanti istruzioni dell'MBASIC, istruzioni
che non si possono mai trovare isolate op-
pure sono, per cosi dire, "anomale". In
particolare THEN non si potrà e dovrà
mai trovare separata da "IF". come pure
USING non avrà senso se non all'interno
di una PRINT. Viceversa la USR potrà
trovarsi sia dopo una DEF (per definire
l'indirizzo di partenza della routine), sia da
sola, seguita dal numero della routine (da 0
a 9) e dalla lista di argomenti tra parentesi.
L'incompletezza della tabella 2 si spiega
anche con il fatto che non vi è in memoria
una vera e propria “jump table" come nel
caso dei comandi già visti: in realtà è pro-
prio all'interno delle varie routine di scan-
sione del testo e di interpretazione del testo
stesso che si trovano salti alle varie routine
a seconda di quale istruzione è stata trova-
ta: i “vuoti" nella tabella possono essere
riempiti dai lettori che volessero analizzare
fino in fondo le routine di cui sopra, che
sono alquanto complesse.
I puntatori ai nomi delle istruzioni
La terza tabella infine indica, a partire
da un indirizzo in prima colonna, l'indiriz-
zo di partenza (e perciò ancora una volta
due byte) di quella zona di memoria conte-
nente i nomi di tutte le istruzioni che inizia-
no per la lettera indicata nella terza colon-
na. Rimandiamo ancora una volta al nu-
mero già citato di MC per i dettagli...
Concludiamo dunque questa puntata ri-
cordando che i valori degli indirizzi ripor-
tati potranno cambiare a seconda della
"release" dell'MBASIC. cosi come cam-
bierà anche l'ordine pseudo - alfabetico
con cui si susseguono i nomi delle istruzio-
A risentirci nel prossimo numero con
altre funzioni del BDOS. MC
MCmicrocomputer n. 38 - tebbraio 1985
165
SIEMENS
PT88, si sente ve
...e puoi telefonare in pace,
lavorare indisturbato, magari
ascoltare musica, leggere una
rivista e intanto la tua PT 88
stampa. In silenzio.
La tecnologia Ink-Jet dà quanto
altre stampanti non possono
offrire: un vero silenzio che si va
ad aggiungere alle grandi qualità
operative della PT 88:
8 set di caratteri nazionali, 150
cps, 80 colonne (132 con la PT
89), 3 densità di scrittura (10, 12,
17 c/"), carta in rotoli, a soffietto
e foglio singolo, grafica in bit
image e scanner mode
compatibile con la
grafica
are una mosca
EPSON e IBM, interfaccia
' seriale e parallela
nonché svariate altre
funzioni
selezionabili via software, il tutto,
sempre, nel più gradevole dei
silenzi. Se lavorare in questo
modo è anche il tuo modo, la
PT 88 della Siemens è
quanto hai sempre
Per ulteriori informazioni, vi
preghiamo di rivolgervi direttamente
alla Siemens Elettra S.pA
20124 Milano, Via Fabio Filzi, 25/A
Tel.: (02) 6248.
Divisione componenti e tecnica
delle comunicazioni.
Reparto A260.
ALPHACOM (U.S.A.)
Mil Computer BBC. Italiana SpA
Viale Matteotti. BB - 20092 Cinisello Balsamo ( Milano I
ALTOS (U.S.A.)
Amitalia
Via Tonavo. 12 - 20124 M.
ACS 8000/10 208K RAM 1 floppy 500K « 1 RARO DISK 8' incorporalo 10Mb 18.530000
ACS 8000/1 2 20 8K RAM 1 floppy disk da 500K * 1 HAR0 DISK 8‘ da 20 Mb 20.230000
ACS 8000/14 208K RAM 1 floppy disk 500K - hard disk 8" da 40 Mb 24.650 000
ACS 580/2 6.120.000
ACS 580/20 192Kb RAM • 1 floppy da 1 Mb * 1 Winchester da 22 Mb 10370000
ACS 580/40 12.750 000
ACS 586/20 21 Ì50.000
ACS 586/40 51 2K RAM 1 floppy da 1 Mb « 1 Winchester da 40 Mb 25.500000
ACS 68000/12 16 bit 500Kb * 1 floppy da 500K con microprocessore Motorola
68000 • 1 hard disk da 20 Mb 30.260 000
ACS 68000/14 16 bit 500Kb • 1 floppy da 500K • 1 hard disk da 40 Mb con
microprocessore Motorola 68000 34.850 000
ACS 8600/12 I H.D. da 20 Mb ■ 512Kb 26.350.000
ACS 8600/14 1 H O. do 40 Mb 512Kb 29 750 000
ACS 986/40 1024Kb - 1 H.D. da 42Mb 30430.000
U/K 10/580 wmchester addirionale per 580/10 e 580/20 da 12 Mb 1.990000
MTU-2 unità a cassetta magnetica da 17 Mb per back-up disco rigido 6630000
MTU-3 unità a cassetta magnetica do 17 Mb per back-up disco rigido 6.630.000
MTU-5 unità a cassetta magnetica da 17 Mb per back-up disco rigido 6.630.000
H00370 TV
H00373 9"
H00374 12
H00376 Eh
H 00377 II
H003I0 Pt
H00315 Pc
H0D320 Pc
H00385 II
H00325 PI
H00330 PI
H00335 PI
H 00340 Xi
H00345 Xi
H 00346 Pi
H00350 P
H00390 M
H00392
H00394
H00396
H00397
itile 256K RAM. 720K
mie 256K RAM, 720K, Colour/mouse
itile 51 2K RAM, 720K, Colour/moose
Mouse (nero per portatile)
I - 256K RAM. 31 5K senta monitor
- 256K RAM. 630K - sema monitor
1 256K RAM. 1440K senta monitor
256K RAM. 5 Mb sema monitor
0 256K RAM, 10 Mb sema monitor
b. Xi 10 (12~) 4 M1 180 l • H azienda
- 51 2K RAM. 10 Mb - sema monitor
te per PC. Xi. P7
AMSTRAD (G.B.)
DEI
Ego Poni Nuon, 14 ■ 24100 Bergamo
ic. (u.s.a.)
i
o, 75 - 20145 Milano
APPLE COMPUTER (U.S.A.)
- 128 K RAM - 1 minitloppy Integrato
sh 128 K RAM • video • I microfloppy
egrato da 400 K ■ mouse - Paint /Wrile
sii SI 2 K RAM - video - 1 minitloppy integrato da 400 K
2.648.250
2.821.500
3.036.000
3.298.350
3.572.250
5.898.750
6.542.250
2.648.250
2.821.500
3.036.000
3.298.350
3.572.250
5.898.750
6.542250
AQUARIUS
Aoque trJ.
Vii 5. Dillo, IB/1 1 - 50429 Finme
Computer Aquarius 1 - 4K RAM
199000
Aquarius printer
274000
Data Recorder
140.000
4K RAM Eapansion
43000
16K RAM Expansion
106.000
32K RAM Expansion
172.000
239.000
Mimexpander (include anche due joystick)
144.000
Cartucce giochi
da 40.000 a 87 000
Cartucce Filatone - Fintone Ext. Basic
172.000
Cartucce Logo Aquarius
172 000
BARCO
TELAV Inlernational
Vii L Di Vinci 43 - 20090 Trenino S.N. IMI)
Monitor 16" OCD 1640
1.071.000
Monitor 22" OCD 2240 a colori
1.257000
Monitor 27" DC0 2740 a colori
1.367.000
BASF
Olla Base Sistemi srl
Via Don Grillanti. 2 ■ 21047 Saronno (VA)
7int - 4R k RAM marrhinl tlav»
6.000.000
7120 ■ 64 K RAM. 3 minitloppy da 163 KB
8000.000
7125 - 64 K RAM. 3 minitloppy da 320 KB
8.900.000
7130 64 K RAM. disco 5 MB^mmilloppy 400 KB
11.400 000
7161 Modulo aggiuntivo disco 5 MB 5"
3.800.000
Interfaccia seriale RS232 aggiuntiva
750.000
6104B floppy disk drive 8" doppia laccio
1 049.660
610551 floppy disk drive 8" doppia laccia Slim
1 025.480
6128 lloppy disk drive 48 TPI doppia laccia Siile
443.920
6138 lloppy disk drive 5,25" doppia laccia Stiro
532580
6185 Drive 5.25" Winchester
2.048.480
6188 5.25 Winchester 10Mb Slim
1.664.700
6238 Basi lloppy disk dnve doppio 5,25"
1.036.640
CALCOMP (USA)
Calcomp S.p.A.
Palano F1-20090 Milanolion Assago (MI)
Plotter M84 (8 penne. A4)
2.850000
Plotter 81 (8 penne, A3)
6.950.000
Plotter 1042 (Dualmode . A0)
19.110.000
Plotter 1043 (Foglio singolo, A0)
19 110000
Plotter 1044 (Dual mode. A0|
27.105.000
1 8 = 1950 lire
CANON
Canon llalia SpA. - Via M'Industria 13 - 37012 Bussoleogo IVO)
Canon X07 portatile con display ine. programmi in basic - microsoit da
8K RAM a 24KRAM da 20KR0M a 40KR0M programmi su
schede • Interi. RS 232 - parallela - Comp. Centronii * 1 plotter 4
1300 2*5' floppy disk drive
1330 2*0" floppy disk drive
A 1350 10 Mb Hard drsk * 5' f
A-1210 Si ,
A- 1250 MATRIX PRINTE 156 b
A 1011 1(0 E:
A 1020 128 Kb RAM
A-1021 256 Kb RAM
A-1022 384 Kb RAM
A-1001 RAM Chip 128K
A-1002 Clock Sol
A-1004 32 Kb VIDEO RAM
A-1100 Poinling Oovice
Ca ssella colore per A-1210
B Cassetta inchioslro nera por A-1210
a. 138 - 20158 Milana
FP-1035
FP-1083
FP-1021
FP-1011
100 cps. 80 col. grafica
160 cps. 80 col. grafica
le 100 cps 132 col grafica
espansione 8K RAM
interfaccia RS 232C
cavo per RS 232C
disk drive da 70 KB
Tetan s.r.l. - Via Matteo Civilali 75 - 20148 Mi
CENTRONICS DATA COMPUTER CORP. (U.S.A.)
Centronics Osta Computai Italia SpA.
Via Achilie Brandi IO - 20093 Cotogno Monzese ( MI)
GLP stampante 50 cps.
353 ASF (1 caricatore)
358 ASF (1 caricatore)
LW 400
IW 800
2.850.000
5.700.000
7.500.000
1.490.000
1.890.000
2.280.000
250.000
250.000
250.000
250.000
575.000
990.000
1.385.000
450.000
160.000
250.000
125.000
33.000
19.000
1.129.000
1.311.000
422.000
1.263.000
2.187.000
3.700.000
405.000
73.000
874.000
182.000
960.000
1.400.000
1 680.000
675.000
45.000
115.000
129.000
69.000
874.000
440.000
80.000
600.000
1 . 100.000
1.550.000
170.000
3.800.000
4.200.000
5.700.000
900.000
6.000 000
7.000.000
16.000.000
31 .000. 000
38.000. 000
CHALKBOARO
Via Filippo Oppi. 19 - 20131 Miteno
Power Pad Tavoletta grafica per Apple - Commodore 64 - Atari
320.000
Power Pad Tavoletta grafica per Commodore 64 - Alari
300.000
COLUMBIA Data Products Ine. (USA)
lledra 3S Spa — Viale Cinzia. 18 - 20154 Miano
Exp. 256 K RAM
1 699.000
Scheda 2-80 CP/M
1.130.000
Interi, monitor bn/colori RGB
712000
Co-processor aritmetico 8087
940.000
Interi, doppia RS-232C asincrona/sincrona
428000
Tastiera con tasti luntione e tasi, numerico
428.000
COINTREAU (Hong Kong)
JCTSCT
Via di Torrerecchie 3/f 00168 Roma
Modem phone. modem con telefono integrato 300/1200 Baud
398.000
Joy Stick prolessionale per Apple
120000
Joy Stick per Commodore auto lite 5 pulsanti
30.000
Mouse grafico
140000
Registratore per Commodore
40.000
Scheda Madre per Apple
450.000
A01IN II
780000
Scheda scientifica ed mdostnale 2 canali 12 Bit - Converlitore da
digitale ad analogico con out put simultaneo
1 620000
Scheda scientifica ed industriale - Sistema di acquisàiom dati veloce
8 Canali di input, differenziati Aulo-rangmg e last longing
■*"
1.850.000
COMMODORE (U.S.A.)
Commodore Italiana sri
Via FM Bracchi. 48 - 20092 Cmisalh Balsamo IMI)
VIC-20
199.000
1210 espansione 3 K RAM
49000
1110 espansione 8 K RAM
75000
1111 espansione 16 K RAM
125000
1211 M 3 K Super Exp
75.000
1212 Programmerà Aid
47500
1213 Mach language Monitor
47500
1214 Smletinalore vocale
176.000
4011 VIC-Rel (per controllo Relè)
95000
4012 VIC Switch (per collegaie fino a 16 VICI
226000
2011 VIC-STAT cartuccia
95000
2012 VIC-GRAPH cartuccia
95.000
TI Interfaccia IEEE 488 per VIC
175.000
T3 Interfaccia Centronics per VIC
116.000
Commodore 16 16KB RAM
245000
C8M/64 CPU 64K RAM
625000
64 Esecutive (sistema a valigetta con video 5" e mmitloppy)
2 350000
Cartuccia e sistema operativo CP/M per 64
125.000
T2 Interfaccia IEEE 488 per 64
175.000
Commodore Plus 4 64K RAM
975.000
Commodore 8296 128K RAM
1 995000
1530 registratore a cassette
120000
1541 mmitloppy 170 K
630 000
1601 Monitor monocromatico ir
285 000
1702 Monitor a colon 14' con audio
690000
MPS 801 Stampante 84.50 Cps
515 000
MPS 802 Stampante 80 Cps
645.000
MPS 803 Stampante bidirezionale 60 cps 80 col
595000
MCS 801 Stampante ad aghi a colori
995.000
DDS 1101 Stampante a margherita
1 195 000
1520 Stampante plottante a 4 colori
375.000
1311 Joy Stick per Vie e 64
13.500
1312 Paddle per Vie e 64
on microprocessore 80/80 grafici colore 128*128 completo di
monitor RGB con 1 floppy 5' 102K
Floppy 8" aggiuntivo
Med. Léonard monitor 14' 8 colorì ♦ drive 8' * stampante
Compucolor Esecutive 16K con floppy 92K
I COMPUTER COMPANY
Computer Cooptai s t s
Vit Sto Giacomo. 3! - 80133 Napoli - Tel. 081/310487-324788
IO 64 K RAM 1 MB
TIN 200 64 K RAM-2 MB
TIN 604 64 K RAM -4 M8
TIN 610 64 K RAM-(IOMIMMb)
TIN 620 64 K RAM-(20Mb*1Mb)
1 T1N 630 64 K RAM (30Mb<Mb)
Unità a floppy disk 1 Mb
' ' 2 Mb
or TIN 64 K (terminale intefligenle)
11 . 000.000
12.300.000
15.900.000
18.500.000
22.150.000
25.560.000
2.750.000
3.200.000
6.400.000
495.000
950.000
Hand Disk PHOENX
PHOENX 5 5Mb - 3 sistemi operativi (Dos - CP/M ■ Pascal) -
interfaccia per APPLE e compatibili
PHOENX 10 Come Mod. 5 con 10Mb
PHOENX 10/PC ■ Come Mod. 10 - per IBM Personal Computer
PHOENX 15 - come 5 con 15Mb
RAM - 2 floppy 5.535
■ 1 floppy ’ hard disk 21 M
RAM - 1 floppy * hard disk 21M
2.270.500
4.075.500
446.500
902.500
1358.500
8.407.500
10.516.500
15.988.500
17.879.000
9.889.500
12.625.500
17.879.000
19.988.000
14.725.000
16.834.000
19.988.000
22.097.000
2.517.500
0MNIDRIVE (Unità a disco con integrato il Disk Server per la re
- 5.5 MB lormattali
— 11.1 MB lormatlati
— 16.6 MB formallali
— 45.1 MB lormattali
TRANSP0RTER
5270.000
6.750.000
8.490.000
13.270.000
1.319.000
fXT, APPLE II. HE. III. DIGITAL RAINBOW 100 TEXAS TI PROF. ZENITH Z-100
(
de da 100 e 200 MB ad accesso anche RAN00M
ile (da acquistare a parte)
ikup per IBM XT se video cassette (da acquistare a parte)
IET per IBM-XT
NCEPT
(ET MIRR0R
R IBM XT
6.290.000
2.637.000
1.319.000
2.637.000
I COSMIC (Italia)
Cesoie s ci
Largo Luigi AolooeOi. 2 - 00145 Hi ma
Rack Quasar 1/2-1 drive 8' doppia faccia per Apple 2.070.000
I Rack Quasar 2/1 - 2 drive 8" singola taccia per Apple 2.600.000
Rack Quasar 2/2 - 2 drive 8' doppia faccia per Apple 3.300.000
GALAXY cene 70
id. 72 64K RAM » video 24*80 • 2 floppy S.0. per 1 Mb 6.950.000
GALAXY serie 80
id. 82 64K RAM * video 24*80 « 2 floppy D.D. per 1Mb 7.950.000
Mod. 82/M2 128K RAM comp. MP/M per 2 utenti 8.750.000
GALAXY serie 380
Mod. 382 64K RAM * video 24*80 + 1 disco smeli da 8 Mb * 1 floppy da 1 Mh 10.300.000
Mod. 382/M2 128K RAM Comp. MP/M per 2 utenti 11.100.000
Mod 382/M4 256 RAM Comp. MP/M per 4 utenti 11.400.000
GALAXY serie 480
d. 480 64K RAM * video 24*80 * 1 disco winch da 10 Mb * 1 floppy da 1 Mb 10 900 000
| GALAXY sene 880
Mod 882 • 1 Floppy da 1 MB + 64K Ram ♦ Video 24*80 t disco da 20 MB 12.200.000
i Terminale aggiuntivo per Mod./M2-M4 1.800.000
DATA SOUTH (U.S.A.)
Segi
Via Timaro. 12 - 20124 Milano
O.S. 180 Stampante seriale 180 cps grafica buffer 2K
D.S. 220 220 CPS trascinamento catta frizione e trattore
Nota: 1 SI 900 lire.
D.D.P. (Italia)
OOP sjJ OIGITAL DATA PRODUCTS
Largo Migliata. 16 - 10143 Torino
D700 Sottosistema per Winchester 638 Mb per Apple II
MXP Mnllipleser lino a 4 APPLE
D705 Sottosistema Winchester 638 Mb DEC QBUS RT11 e RSX11M
D710 Sottosistema Winchester 12.76 Mb DEC QBUS RIT11 e RSX11M
D510 Drive aggiuntivo 12.76 Mb per D710
Nota: prezzi legati 8d un cambio 1S = 1 500*2%
DIABLO SYSTEM INC. (U.S.A.)
Va Tauro. 12 - 20124 Milano
630 API stampante a margherita 40 CPS
630 ECS/PC stamp. a margherita 40 CPS con interi, por IBM Personal Computer
630 ECS stamp. a margherita 40 CPS - 400 caratteri in combinazione-buffer 1 344 byte
Nota 1 S lire 1900
DIGITAL EQUIPMENT
Digital Egoiptnanl S p A
V.le Fulvio Tosti ang. V. Corti 105 - 20092 CiniseUo Balsamo (MI)
RAINBOW PC 100
128 Kb RAM. Minidisco duale 2*400 Kb, Monitor Monocr. 80/132 CL * tastiera.
CP/M * MS-DOS
RAINBOW PCI 00 PLUS
Stesso modello precedente ‘ Winchester 10 Mb
PROFESSIONAL 350
512 Kb RAM minidisco duale 2*400 Kb. Monitor Monocr. 80/132 Cl • tastiera.
scheda grafica, Floaling Pomt. P/0S Multi tasking
PROFESSIONAL 350 • W.
Stesso modello precedente * Winchester 10 Mb
DECMATE III package
4500000
1 200.000
4800.000
5.300.000
3.000.000
6.175.000
7.505.000
7.030.000
6 . 666.100
11.835.100
FACIT AB (Svezia)
Osi SpA.
Via Imperli. 2 - 20142 Milano
6500 160 CPU. 32 Kb ROM + 32 Kb RAM. laniera, video 15" 80»24, 2
minilloppy da 160 Kb
6500-360 Come 6500-160 ma con 2 minilloppy da 320 Kb
6500-640 Come 6500 160 ma con 2 minilloppy da 640 Kb
6500-SM Come 6500-160 ma con 1 minilloppy da 640 Kb e hard disc 5 Mb
6500-10 M Come 6500-160 ma con 1 minilloppy da 640 Kb e baid disc 10 Mb
6500 1 60C CPU. 32 Kb ROM • 32 Kb RAM, lasliera. video 14" colori 40*24 2
nnilloppy da 160 Kb
6541 Scheda High Resolution per applicazioni grafiche
6545 Scheda di memoria 32 Kb RAM
6546-1 Scheda di memoria 32 Kb RAM * CP/M
6559 Olive cassette audio
SII Stampante a matrice 80 colonne 100 cps
S31 Stampante a matrice 132 colonne 100 cps
0620 Stampante a margherita DIARIO 620 132 colonne 20 cps
GENIUS COMPUTER s.r.l.
Genius Competei s.eJ.
Via G. Coma Pellegiini 24 ■ 25100 - Oiescia
GC 3000 Z80A a 4MHr 80KB 2 minifloppy 1.6 MB lormattati - Video
GNT (Danimarca)
Tele om s ii
Via Malreo Cititeli. 75 - 20148 Milano
Mod 3601/50 (perforatore di banda, interlaccia parallela)
Mod 3601/75 perforatore di banda lelei interlaccia seriale e parallela cor
convertitore ASCII e BAUDOT 75 cps
GRAPHTEC (ex Watanabe)
SPH competei Sii
Vìa Giocosa. 3 20127 Milano
MP1000-21 MIPL0T 6 penne. 15 ca/sec int 8 bit parallela
MP1000-01 MIPL0T 6 penne. 15 ca/sec ini. RS232-C
MP1000-1 1 MIPLOT 6 penne. 15 ca/sec int. IEEE-488
MP1000-31 MIPLOT 6 penne. 15 ca/sec int. 8 bit par. DX
OT 1000 digitalizzatore formato A3
WX 4731 plotvrriler a tamburo 4 penne
PC 2621 - interfaccia parallela 8 bit
FP 5301-01 Personal plotter 10 penne formato A3-45 CP/M * RS232C.
FP 5301-11 come 5301-01+IEEE 488
FP 5301-21 - come 5301-01 * Interfaccia 8 Bit parallela
PC 2601 - interlaccia RS-232C
PC 2611 - interlaccia HP-IB IEEE488
PC 2602 interfaccia 20 m A Currenl Loop
ireni per 1 Yen = 7.3 lite
GRUNDY (GB)
Mictoslai s.t.1.
Via Caglialo, 17 - 20125 Milano
5.360.000
5.760.000
6.260.000
12.460.000
13.960.000
5.100.000
700.000
500.000
700.000
320.000
1.050000
1.280.000
3.050.000
11.770.000
12.630.000
13.540.000
14.410.000
2.350.000
3.375.000
1.906.000
2.005.000
2.117.000
2.421.000
1.889.000
3.674.000
5.001.000
6.547.000
6.761.000
6.305.000
969.000
1 103.000
1.169.000
Digito GTCO mod. M07 lormato 6*6 con stilo
Digito GTCO mod 0P5 lormato 6*6 con cursore
Oigito GTCO mod M07 lormato 12*12 con stilo
Digito GTCO mod. M07 lormato 12*12 con cursore
Software per IBM PC
Alimentatore 12V-275 mA
Cavo per collegamento
Nota: prezzo pet dollaro a l 1700
HEWLETT PACKARD (U S A.)
Hewlett Padani Italiana
Via G. Di Villoiìo, 9
20053 Cemosco sol Naviglio IMI)
il Computer HP-150B 45610BZ
18 con dischi 3.5" 91220 - 45650BZ
18 con disco 14.5M 9133D - 45660BZ
ole termica per HP-150 - 2674A
Master singolo 1200K - opz 010
isco rigido da 4 8M Byte
>n Hoppy da 270K |3") - 9133V
isco rigido da 14.5M Byte
tn floppy da 7I0K (3.5") 91330
isco rigido da 14.5M Byte
in floppy da 270K (3"| - 9133XV
isco rigido da 14.5M Byte 91340
lisco rigido da 14.5M Byte - 9134XV
ottosistema a nastro da per backup HP-150 9144A
loller lormato A4 a due penne - 7470A
lolter lormato A3 a sei penne - 7475A
avolena gralica- 9111A
ca 80 col/150 cps
I 80 car/sec, 829058
80 Col/160 cp
RS232C 20cps • 2602A
Interfaccia HP-IB - opz 046
Trascinatore di logli - 26020A
Stampante termica
80 coL/120 cps - 2671 A
1.632.000
1.810.000
2.065.000
2252.000
435000
212.000
68.000
8.715000
4.337000
7.602.000
6.852000
6.923.000
12150.000
773.000
11161
7.108000
3 178000
2409000
2018000
2.564.000
I 827.000
5.663.000
3882000
3.040.000
14.502000
II 194.000
5.224 000
8459000
8495000
7.683.000
7673000
7964.000
2.723.000
4709000
5.555.000
1 233.000
2.089.000
251.000
2005.000
8860000
Digito GTCO mod 0P5 11*11 (tavoletta grafica)
3570.000
"IL PIÙ VENDI
WORDSTAR
DAI PROFEi
r 0 NEL MONDO’’
PROGRAMMI DI SCRITTURA.
SIONISTI DEL SOFTWARE.
Wordstar è il programma di scrittu-
ra più venduto nel mondo: il più co-
nosciuto, il più collaudato, il più si-
curo e il più richiesto.
Wordstar 3.40 (la nuova edizione che esalta tutte le
caratteristiche di un computer a 1 6 bit) è potente, su
misura, semplice da installare. E' un programma no-
toriamente facile da usare. Oggi poi comprende
Wordstar Tutor, una serie di istruzioni “
su disco che permette di familiarizzare
rapidamente con le sue caratteristiche.
Wordstar è in italiano, e più perfezionato.
Le opzioni CorrectStar, Mailmerge e Sta-
rindex lo rendono il sistema di wordpro-
cessing più completo ed efficiente
oggi inTtalia. Bestseller della Micro-
Pro (una casa che ha sempre /
fatto solo software, iniziando
prima degli altri), Wordstar 3.40 è parte di una ,
famiglia di programmi in costante crescita: / .
la famiglia MicroPro; programmi potenti e
sofisticati per una maggiore produttività, y
il cui denominatore è l'estrema fa-
cilità d’uso e la possibilità di es- / «,
sere totalmente integrati tra jf
loro. MicroPro. / ,
MicroPro S,r ien * / '*** ' “
a manica di punii ■ 136 colonna - 120 cps
i - 64KB RAM - da 32 a 66 KB ROM laniera allanumerlca.
fiala RS232C - Inlerfaccia floppy 8' e 6'1f4
lì con 2 minilloppy 5"1/4 doppia faccia, doppia dansilà. 640K6 fon
lì aggiunlhra di 2 minilloppy da S'1/4
lì con 2 floppy 8~ doppia faccia: doppia densili, 2MB formattali
lì aggiuntiva di 2 floppy da V
tonai Computer Portatile - 8085 CMOS - 16 KB RAM - 32 KB ROM
y a cristalli liquidi 40 • 8
n Pai E/2 - 20094 Assago (Ih
Microline 82 A 80 col. 120 CPS
Micioline 83 A 132 col. 120 CPS
Microline 84 132 col. 200 CPS Parallela
Microline 92 80 col. 160 CPS Parallela
Microline 84 132 Col. 200 CPS Seriale
Microline 92 80 Col. 160 CPS Seriale
Microline 93 132 Col. 160 CPS Parallela
Microlme 93 132 col. 160 CPS Seriale
OKI 2350 132 col. 350 CPS
OKI 2410 132 col. 350 CPS NLQ
M 10 - 24K RAM
M 20 ST versione billoppy « exp RAM 160K « stampante PR 1450
M24 billoppy 256K RAM ■ video
M21 come 20ST ma con 256K RAM Video monocromo
PUÒ microplotter per MIO
MC10 ac
Espansione 8K per MIO
er MIO
Mod. ESW 102 RO Stamp a margherita 17 cps bid. boiler 4K
Mod. ESW 103 KSR Stampante a margherita 17 cps bid. buffer 4K «
Mod ESW 3000 RO Stampante a margherita 35 cps bid Buller 4K
ta UNIX System III
C501 20/51 2K/40MB/5 porte. Terminale Onyi. licenza UNIX System III
C501 2V1 /51 2K/21 MB/5 porle. Terminale Onyx. licenza UNIX Systemlll
1.460.000
2.235.000
1.185.000
2.435.000
1 375.000
1.770.000
1 960.000
5.050.000
5.420.000
31 .000.000
31.000. 000
36.500.000
37.500.000
43.000. 000
PHILIPS S.p.A.
Philips S.p.A.
Piana 11/ Honmbte. 3 - 20124 Milana
!K RAM - 32K ROM 32 spi
te 80 col. V W 0020
te 40 col. V W 0010
ite W 0040 parallela Centronics
510.000
570000
180.000
450000
260.000
55.000
72.000
100.000
100.000
90.000
la 20.000 a 50.000
P2500/M CPU 'Monitor grafico 12' 64 Kb RA
*2 ni
py da 304 Kb '
leCP/M
P2500/M OS come P 2500/M con 2 minilloppy da 604 Kb
P2010 Portatile con 2 minifloppy da 160 KB ♦ CP/M ♦ Wordstar e Calcstat
P2012 Portatile con 2 minilloppy da 640 KB ' CP/M • Wordstar e Calcstat
P2010-2 Portatile con 2 minilloppy da 160 K8 ' CP/M e extended IEI
P2145 disco fisso 10 Mb
P2092 Scheda di Esp. di memoria 256Kb
P2091 Scheda IEEE 488 - Comprensiva di IEEE 488 tu
P2145 Disco fisso da 10Mb lormattati
PII 80 Stampante 132 Col 160CPS
5.750.000
6.150.000
3.650.000
4.600.000
4.000. 000
3.450.000
850.000
800.000
3.450.000
2 . 000 . 000
P 2010 Portatile con videe 9' e
Con CP/M. TESI (ini. retziov
Con CP/M, Scheda IEE 488
P 2012 Portatile con video 9' e
Con CP/M. TESI (mi retnev
Con CP/M. TESI. Wordstar.
py 5" da 640 Kb cadauno.
rdStar. CalcStar
arge. CalcStar, InfoStar
4.600.000
4.950.000
4.990.000
850.000
600000
800.000
ONSULT Scientifica
due Tom. 65 - 00146 Home
B: 2 drive 500 KB ' video
B: 2 di
dr. 500 K6 • M disk 5.8 MB '
PCS 84003/8: 1 di. 1 MB ' H. disk 5.8 MB • v
PCS 84004/B: 1 di. 500 K8 * H.disk 10 MB • v
PCS 84005/8: 1 di. 1 MB • H.disk 10 MB * vid
PCS 84006/8: 1 di 1 MB * H.disk 20 MB * vi*
PCS 84007/B: 1 dr. 1 MB • H.disk 29 MB • vi*
PCS 84000/C: 2 drive 500 K8 • video
PCS 84001/C: 2 drive 1 MB * video
PCS 84002/C: 1 dr. 500 K8 t H.disk 5.8 MB • ì
6.600.000
8 . 1 00.000
10.800.000
11 100.000
11 400.000
12 . 100.000
15500.000
18 500.000
8900.000
10.400.000
13 100000
180
ROBOT1CS LTD.
1. CHANNEL ISLANDS
HOME COMPUTER
INGLESI
Vendita per corrispondenza a prezzi “TAX
FREE” in lire sterline, i più bassi anche in
Inghilterra.
Commodore 64
Commodore C2N Cass-Data
Commodore 1541 Disc Driver
Commodore CI 6 Pack
Commdore Plus 4
Sinclair Spectrum 48K
Sinclair Spectrum Plus
Sinclair QL
Sinclair Expansion System
(Microdrive 6P Interfaccia 1+4 software)
* 180.00
& 45.00
& 200.00
* 135.00
«£ 275.00
& 120.00
& 165.00
& 360.00
«£ 95.00
I prezzi sono comprensivi delle spese di spedizione e
assicurazione
Tutti i prodotti sono spediti per via aerea e sono
assicurati.
Tempi di spedizione: 21 giorni dal ricevimento del-
l’ordine.
Eventuali sostituzioni di materiali sbagliati verran-
no effettuate entro 10 giorni dal ricevimento della
merce.
II pagamento dovrà essere effettuato in forma antici-
pata su c/c Robotics Ltd, Nro 70804304, BARCLAYS
BANK PLC, P.O. Box 41, St Peter Port Branch, Guer-
nsey, Channel Islands, oppure con assegno “EURO-
CHEQUE" intestato a Robotics Ltd.
I Speditemi gli articoli sotto indicati a:
| Nome:
-Indirizzo: ......
m Codice postale e città
I Articolo: Quantità
| Articolo: Quantità:
- Dettagli di pagamento:
Inviare a: ROBOTICS LTD, 16 Hew Street, St Peter Port, Guemsey,
■ Channel Islands, United Kingdom.
k J
Registratore CCR 81
Color 16K Basic
Color 1GK Eitended Basic
Colai 32K Extended Basic
16K RAM Color
32K RAM Color
Joy Stick
Olive 0 New Color
Drive 1 New Color
Mod 4 I6K
td. 4 64K 1 Drive
Mod 4 128K 2 Drive con CP/M Plus
Mod 4 64K 2 drive portatile
id. 4 High resolution
Hard Disk SMB Mod. 3/4 Prinary
Hard Disk 5MB Mod. 3/4 Second.
Tandy 2000 128K RAM 2MB Comp IBM
Tandy 2000 356Kb * HO. 10MB
Menomine per TANDY 2000
Color monitor per TANDY 2000
Exp. a 16 bit per MOD. 2
d 12 80 K 1 Drive
Mod. 12 80K 2 Drive
Drive 3 Slim Bay
4 Slim Bay
Mod. 16B 256K H.0. 15 Mb con Xenii
Secondar» H.O 15 Mb
12BK RAM CHIP Mod 1B
1 28K RAM Board Mod. 1G
Scheda gralica
Drive 3 Slim Bay
Drive 3 e 4 Slim Bay
DT-1 Terminal
SNA/3270
BIS-3780
8IS-3270
CLEO • 3270
Terminale video mod, VT 4100
Temimele video mod. VT 4200 BASE
Terminale video mod. VT 4200 S Emulazioni Esprit ll/ADM34/Viewpoinl/DL80
Terminale video mod. VT 4200 B Emulaiioni TVI 912B/TVI 920/TVI 925
Terminale video mod VT 4200 C Emulaiioni ANSI 3.03/VT52/VTI32 LIKE
Terminale video mod. VT 4200 D Emulaiioni ADM 3A/Viewpoint/HZ1500/VT52
935.000
1 . 020.000
1 105.000
1.088.000
■me 140cps 80 col Bidirei gralica)
iute 140cps 156 col. Bidirei. grafica)
* Per stampante Apple II)
TELCOM
Tekom u.L
Va Minio Cmali 75 - 20148 Milano
Stampante TELCOM CP 80P - 80 col - 80 cfsec. (I/F parallela)
Stampante TELCOM CP 80S ■ 80 col 80 c/sec (l/F seriale)
Interfacce per adattamento stampami YUKI-MITSUI-CP80
Interfaccia adapter per Apple II Ile e compatibili
117.500
1.153.000
1.620.000
174.800
TC IFCC001 Buffet 6Kb esterno CTX • CTX
250000
TC IFHP-IB Interfaccia IEEE488 (HP-IB) - CTX
160000
TC IFSC001 Interfaccia seriale esterna RS232C 20mA CTX (8Db)
450000
TC IFSC002 come sopra (2Kb)
300.000
TC IFC64 Interi. paralL CTX per Commodore. 64 e VIC 20
105.000
TC IF2CTX Sdoppiatole d'interfaccia CTX
195.000
TC IFSINCL Interfaccia CTX per SPECT 16/48
120.000
Nota: preso per dollaro a L. 1.600
TOBIA (Italia)
Ila! SUDA
V.le Cesili Pavese. 45 ■ 00144 Roma
intìnti TitRta rfta i n <r it« ?mi kr
3.480.000
106C1 TOBIA BETA 1 II. 5" da 1MB
4 780000
106C2 TOBIA BETA 2 II. 5" da 2MB
5.900000
109C1 TOBIA GAMMA 1 5" da 1MB cias.
6.000.000
109C2 TOBIA GAMMA 2 0 5' da 1 MB tot.
6.900.000
109C3 TOBIA GAMMA 2 0. 5" da 3.2 MB tot
7.500.000
I09C4 TOBIA GAMMA 2 II. 8" da 3,2 MB tol
7900000
HOC TOBIA DELTA con disco 5*5 MB
11.900.000
Controller OMTI 20C
816.000
Disco Winchester 65 MB
810.000
NDR 505 sottosislema NDR 5*5 MB per IBM PC
5.900000
4.500.000
TOSHIBA (Giappone)
libei S p A
Via Madonna del Riposo. 127 - 00165 Roma
81540 Tastiera con CPU 64K RAM C/INTERF
1 350.000
81542 Video verde 640-200 bots grafico 12“ • 80 car -25 linee
54 8 000
81543 Video colori 640-200 bots grafico 14' 800 car *25 linee
1 700.000
81544 Unità C/2 FDD - 560Kb«2
2250000
81547 Stampante gralica 80 col. 125 cps
1.550.000
81550 Stampante grafica - 132 col. 125 cps
1 880 000
81545 Cavo stampante
95.000
81546 Cavo Interi. RS 232/C
95.000
81548 Rom Pack 0A BASIC
445 000
81553 Ram Pack 16 Kb
445.000
81541 Cavo Alimentazione A/C
10000
82577 Nastro stampante
25.000
82404 Sili. Op. CP/M
200.000
82406 Sist Op • 0A/BASIC DISK
120000
82406 Sist Op. T/BASIC - DISK
120.000
81513 • Personal Computer T300 System 1
3.850.000
81501 Tastiera * CPU 192 Kb * Unità 2 F0 0 640 Kb«2*inler1
4 600 000
81511 Hard Disk 10 MB slim Ime
3.850000
81506 Video verde - 12" - 640-500 bots • 80 chrs-25 linee
450.000
81505 Video colori 1-14" 640-500 bots 80 chrs-25 linee 8 colon
1.440.000
81503 Memoria addinonale 64Kb
230000
81515 Adattatore per comunicami
485.000
81518 Data/Time clock
160.000
81507 Adattatore grafico t 640-500 per monocrnm (scheda)
460.000
81504 Adattatore grafico 2 -8 colori in Add Adatt Gral. 1
850.000
81516 - Adattatore Paletta per Video Colori n' 2 256 Colori
870000
81547 Stampante 80 col. 125 cps - grafica
1150 000
81550 Stampante 132 col. 125 cps grafica
1 880 000
82410 Sisl Op CP/M 86 C/CBASIC ■ 86
565000
82414 Sist Op MS-DOS. 20 C/T BASIC 16
120 000
TRIUMPH ADLER (Germania)
Jmmph Adlei Italia SpA Viale Monta. 201 - 20126 Milano
Alphatronic PC
1.050000
la unità lloppy por PC
1 000.000
2a unità lloppy per PC
835000
Video per PC
500000
Alphatronic P2U 64K RAM • 16 ROM (64K utente) unità video 1920
caratteri e 2 unità minifloppy doppia leccia (2-320 KB)
4.200.000
Interfaccia IEC Bus
396.000
Interfaccia Parallela UPI 8606
585000
Orologio Reai Time EZU 8607
Full-Giaphic CRT4A
FiiD-Graphic Terni 1
P40 to
i P4 *
■e P30
re 80/88 < 64Kb * 128 Kb RAM
Alphalronic P3 come P2 U + 2 minifloppy da I Mb
Alphalronic P4 come P3 * 1 disco Winchester da 5 MI
IH 80 stampante ad aghi 80 cps
IH 136 stampante ad aghi 120 cps
ORS 250 stampante ad aghi 250 cps
TRD 170 stampante a margherita 17 cps
GABI 8008
Interfaccia parallela per Alphatronic PC e GABI 8D08
Eco 2/7 come Eco 1 * Winche
10 come Eco 2/7 con W
Eco 2/16 come Eco 2/7 con W
Eco 2/27 come Eco 2/7 con W
VECT0R 4/00 IWS Intelligent Workstation per UNO
IR 4/10 1 Minifloppy 630 Kb
IR 4/20 2 Minifloppy (1.2 Mb)
IR 4/30 Hard disk 5 Mb. Minifloppy 630 Kb
IR 4/40 Hard disk 10 Mb. Minifloppy 630 Kb
IR 4/60 Hard disk 36.6 Mb. Minifloppy 630 Kb
VECTOR VSX 8/16 BIT Z80 8/8086 (BMHZ):
VICTOR TECHNOLOGIES (U.S.A.)
HA80EH ITALIA S.pA
Milano fiori - Strido n‘ 7 Filino T3 30089 Fonano /M
:tor 1 128K RAM
rior 1A 256K RAM
rtor 1B 256K RAM
rki (portatile) 256K RAM
* MT 180 l ♦ H. Azienda
* MT 180 V + S.0, Concnrrenl
IB - Completo - per V1/V1A
*8 - Senza 0 M A - per V 18
sporter board LAN
e server 256K - 10 MB winch. - 1 A N
irden 10 + 10 MB Victor - Aprico!
HQ0155 Harden 5 * 5 MB Victor • Apricol
H00018 Scheda Xebec controller
175.000
1.080.000
1.400.000
7.000. 000
9.300.000
6.460.000
8.500.000
1.450.000
1.930.000
3.300.000
2 . 000 . 000
805.000
200.000
9.500.000
12 . 200.000
12.800.000
13.800.000
14.800.000
5.550.000
6.650.000
7.750.000
10.650.000
12.650.000
21.700.000
64 Kb. RAM. Scheda llashwriter.
1.340.000
4.500.000
HD0D19 Scheda 0MA card
H00021 Scheda espansione 128K - Victor
H00022 Scheda espansione 384K - Victor
H0D025 Scheda co processore Aritm. 8087
H00044 Sistema CPM/80
Drive per Mod. 2001 completo di controller
1.075.000
740.000
1.980.000
990.000
1.350.000
ih basic (TRS 80 comp.) 490.000
ia parallela 990.000
Rei 290*192 +
560.000
580.000
Mnd. 9710 Sottosislema a dischi Winchester da 10 MByles
enn adattatore Apple per DOS: CPM: Pascal: Prndns
IBM PC
Multibus per CMP-86
OBus per emulazione RL02/01
SI 00
Mod. 9730T Sottosistema a dischi Winchester da 35 MBytes
con adattatore Apple per 00S: CPM: Pescai: Prodos
IBM PC
MULTIBUS per CPM-86
S-100 per CPM-80
OBus per emulazione RL02/01
XEROX 820 II ACL 64 Kb RAM. video 24*80. 2 minifloppy da 368 Kb (OS)
XEROX 820 II ACL 64 Kb RAM. video 24*80. 2 floppy 8‘ do 600 Kb (SS)
XEROX 820 II ACL 64 Kb RAM. video 24*80. 2 floppy 8" da 1200 Kb (DS)
XEROX 820 II ACL 64 Kb RAM. video 24*80.
1 floppy 8” da 1200 Kb * hard disk 10 Mh
16/8 scheda aggiuntiva con CPU 16 bit e 128 Kb RAM
0IABL0 630 stampante a margherita 40 cps
ro CP/M
tè programmi DIABL0
py 8~ da 1200 Kb (OS)
.1 floppy 8" da 1200 Kb. hard disk 10 Mb
di lavoro aggiuntivi
10 mod. 0651-02 (interi, seriale
10 mod. 0651-11 (ini. parali. -
+ ROM graf.)
12 (ini. seriale ‘ ROM graf.)
zzi per I yen 6.7 lire
3.400.000
3.400.000
3.950.000
4.990.000
3.950.000
13.550.000
13.550.000
14.100.000
14.100.000
14.990.000
5.700.000
6.700.000
7.600.000
10.500.000
980.000
4.750.000
2800000
300.000
1.028.000
680.000
11.900.000
16.800.000
1.600.000
3.000.000
1.560.000
1.660.000
1.830.000
1.930.000
SCHEDE A MICROPROCESSORE
A.S.EL. (Italia)
AS.CL tri
Vii Coniai mpem 17 - 70139 miao
Amico 2000 montato
Amico 2000 in kit
Aumentatole
T
li Ti .
NEWÌ
L’unica rivista con cassetta per il tuo TI 99-4A
...data found
Tutti i mesi in edicola
NEW SOFT Via Stefano Jacini n. 4 - 20121 MILANO - Tel. 02/807464
MCmicracprnputer n, 38 - febbraio 1985
S INC LAI R
2X SPECTRVM
MCmlcrocompuier n 38 - febbraio 1985
puler per scambio idee e programmi. Rispondo i
chiunque sia interessalo. Davide Aredi - Via Verba
no 241 - 28100 Novara - Telefono (0321) 471 192.
Si c aperto a Torino lo "Spritc computer club": la sui
sede è in vìa Vagnone 3 (nei pressi di p.zza
La sede è aperta il mercoledì dalle 1 7.30 alle 20.00 si
ti interessano amicizia c computer vienici a trovare i
potrai anche collaborare al bollettino dei club.
Studente cerca possessori di Olivetti M 10 per scambio
di programmi ed idee. Scrivere a Emilio Hirsch stra-
da San Vito 60. 10133 Torino.
Si c costituito il “Computer club C'iriè" per utenti
sizione dei soci. Per informazioni scrivere a: Speran-
za Pasquale - Loc. Vastalla. 80 - 10073 Ciriè (TO).
Atariani. e finalmente nat
to ai possessori dì com
800XL ecc. Non siamo nc
:e interessate a scopri-
re tutte le possibilità di questo “personal". Scrivere
inviando bolli * risposta a Atari User's Club. Via B.
d'Alviano 29 - Milano.
Disponendo di Un PC/1BM desidero contattare uten-
ti di questo residenti in Milano per scambiare idee,
informazioni c programmi. Se interessati rivolgersi a
Riccardo. 021 4233024.
Disponendo di IBM PC scambio esperienze c pro-
grammi con chiunque sia interessato; rispondo a
lutti. Idini Renato Via Europa n. 10 - 20028 San
Vittore Olona (MI) - Tel. 0331/ 517717.
È nato il Commodore Club della Bassa Bergamasca
per scambio programmi e listali. Scrivere a Casella
Postale 24058 Romano di Lombardia (BG).
TI 99/4A - Desidero entrare in contatto con pro-
grammatori esperti di TI Basic per scambi, consigli,
idee, esperienze. Preferirei zona VR - MN o province
vicine. Scrivere a Bruno Ruggiu - Via 1° maggio -
37060 Bonferraro - VR
Amici 64isti per qualche tempo ho interrotto i rap-
porti di scambio con voi (causa acquisto Apple H/e)
mi scuso con chi non ha avuto risposta. Ora ho di
tronics? Contattatemi - Mellone Geom. Maurizio -
Via Sabbionara 9- 36061 Bussano del Grappa (VI) -
Tel. 0424/ 20015.
64 per scambio informazioni, esperienze, program-
mi. Dispongo oltre 300 programmi su disco. Cerco
Back up nastro/disco. Telefonare alla sera allo 0445/
404863 o scrivere a Giorgio Pcllizzari - via 7 Martiri
1 15 - 36078 Valdagno (VI).
Tcxas-TI 99/4A - Ce
bly Per scambio idee
zona Vicenza - Tel. 0444/ 566587
linguaggio /
Per tutti i club ed utenti del C64! Siamo un Commo-
dore Club, cambiamo, vendiamo, compriamo soft-
ware. in particolare Vidcogames. Solo su cassetta.
Scriveteci o telefonateci: Pannozzo Enzo - Via Sassa-
ri III T.R.V oppure telefonateci in Sede: 0771/
501391. 04022 Fondi (LT). w»
Annunci a pagamento di carattere commercia-
te-speculativa fra privati e/o ditte ; vendita e
realizzazione di materiali hardware e software,
offerte varie di collaborazione e consulenze, ec-
cetera. Allegare L. 30.000 (in assegno) per
ogni annuncio. Vedere istruzioni e modulo a
pag. 193.
Non si accettano prenotazioni per più numeri,
né per più di un annuncio sullo stesso numero.
MCmicrocomputer si riserva il diritto di respin-
gere, a suo insindacabile giudizio e senza spie-
gazioni, qualsiasi annuncio dietro semplice re-
stituzione della somma inviata.
In particolare saranno respinte le offerte di ven-
dita di copie palesemente contraffatte di soft-
ware di produzione commerciale.
Per motivi pratici, si prega di non lasciare co-
municazioni o chiedere informazioni (telefoni-
che o scritte) riguardanti gli annunci inviati.
HP Series 80 Secure Control vendo potente
programma binario che vi permetterà di riabi-
litare i comandi LIST e STORE al di sopra di
ogni sicura, tei. 06/6173327.
Microdata SAS - la più vasta gamma profes-
sionale di software italiano per lo Spectrum a
prezzi competitivi. Programmi e listini presso
qualificati rivenditori. Annunciamo con di-
sponibilità immediata nuovo catalogo pro-
grammi per Amstrad CP C64. Per informazio-
ni: Via Tasso 29 - 10093 Collegno (TO). Tel.
011/4112095. Cerchiamo qualificali agenti di
vendita.
Per Apple Ile, Ile, Il plus e Mac Intosh esistono
numerosi programmi. Quanti di questi soddi-
sfano pienamente le tue esigenze? Noi perso-
nalizziamo i programmi di base adattandoli a
qualsiasi esigenza, ne creiamo di nuovi su ri-
chiesta. il tutto unito alla massima celerità e
serietà. Richiedere lista e modalità scrivendo o
telefonando. Luigi Palumbo - Via A. Ristori 8
00197 Roma. Tel. 06/802783.
Causa cambio sistema, realizzo software per
Apple. Più di 1000 programmi a disposizione.
Invio lista su richiesta. Oggioni - Via Gonza-
les, 4 - 20139 Milano. Tel. 02/5397867.
Vendo Sinclair QI. completo di accessori e pro-
grammi e coperto di garanzia a lire 1 .390.000.
Massima serietà. Dante Vialetto - Via Beltra-
me 9 - 21057 - Olgiatc Olona (VA). Tel. 033 1 -
638521.
Vendo Package per sviluppo mangimi zootec-
nici comprensivo di ottimizzazione: date le ma-
terie prime e le caratteristiche del mangime
desiderato calcola la formula (mangime +
razione) che al minor costo soddisfa lutti i
vincoli. Disponibile per CBM 64 é personaliz-
zabile per qualsiasi personal/ mini/ mainfra-
me. Eventualmente contatto Software Houscs
interessate commercializzazione. Roberto
Mucci - Via Franzcla 4/a - 351 35 Padova. Tel.
049/615088 ore pasti.
TI 99/4 A. Ottimi Prog. TI Basic (cassetta -i
listati f guida completa all'uso) 3 Tolocal-
cto-Plus I6K’ (Sviluppano sistemi ad alta
probabilità di vincita, integrali, semnntegrah.
ridotti, derivati, statistici, correzione errori,
con qualsiasi condizionamento e fino a 10 000
colonne') L 12 000. 14 giochi stimolanti e im-
pegnatiti I6K' • Archivio su cassetta (3000
righe su una C 60) + Gestione e contabilita
negozi L. 15.000; oppure tutti i 19 prog. L
20.000 Richiedere con vaglia postale o asse
gno a Giorgi Ivano - Via Torre Pincamuno -
25050 (BS) Garanziasoddisfalti o rimborsa-
ti! Tel 0364-55446
TI 99/4A 26 listali originali inediti a I. 10 00O
spedire l'importo a mezzo vaglia o bolli Oltre
1000 programmi per lune le configurazom.
giochi, gestionali, grafica didattica, ingegneria
speciale Assemhlcr disegni 3D con rotazioni
ctc . Koala joystick, giochi inediti, suhroutinc
grafiche velocissime, grafica III Res su stam
panie, compilatore per X- Basic richiedono
32K + disco Perlini Paolo - Via 21 Gennaio
152 - 61020 Montccchio(PS) Richiedi la lista
per eventuali scambi
Per ( ommodnre 64 vendo centinaia di prò
grammi su nastro o disco: gestionali, bellissimi
giochi in linguaggio macchina, linguaggi di
programmazione, utility, muiscali ecc Per in-
vio listino o per informazioni scrivere o telefo-
nare a Dominami Stefano - Via Tommaseo.
18 • 21100 Varese Tel. 0332-229909.
Vendo a sole L. 1 5.000 per TI 99/4A conexten-
ded basic programma inedito su cassetta per
sviluppo sistemi integrale o ridotto. Riduzioni
su n. max c min dei segni “l-X-2" sul totale
partite e/o su sene B-C' e/o su correzioni max e
min della colonna base c/o su n max e min di
macchie Per ordinare scrivere o telef a Do-
menico Bocchelli - Via D Fontana. 27 is. 21
(80128) Napoli tei. 081 254751 ore 18-21.
Mac Intosh anche SI 2K consulenza hardware r
software Vendo - personalizzo programmi d:
ogni genere - sviluppo qualsiasi procedura -
specializzato in procedure di gestione studi
professionali (medici, legali ) - massima se-
rietà - tempi brevissimi - Tutta la documenta-
zione Mac disponibile Alessandro Menicucci
Via S. Silverio. 31 - 00165 Roma Tel
06/6384180.
Apple compatibili dotali di 2 microprocessori
(6S02-Z 80), 64 K di RAM c pad numerico
separato - disk drive, monitor, stampanti, in-
HAI UN
TI 99/4A?
È disponibile a L. 180.000
più spese di spedizione,
in contrassegno il modulo
SSS - EXTENDED BASIC
Pulsemasler srl - Via Puccini. 3
Tel. 039/462317 - 20035 LISSONE (MI)
MCWeMC.o/ilpiMr ri 38 - l&walo 1985
ccc e mininoppy. Dilla importatrice offre
pclilivi. Per dimostrazioni contattare: BEC99
- P.zza Garibaldi. 44 - Fidenza (PR), Tel.
0524/83030.
Vendo per Apple 1 1 e compatibili - schede sintesi
vocale - 80 colonne- Time clock < PRO-DOS) -
/-SII - Language Card - Drive controller e
Disk Drive Slim Line con manuali ed eventua-
le software a prezzi interessanti. Zuin Adriano
Via M. Buonarroti. I - 20030 Senago (MI).
Tel. 02-99010421.
Per Commodore 64 vendiamo, a prezzi modici.
ni programmi di ogni genere (gestionali,
utilitv. grafica, ccc.) completi di manuali. Inol-
isponibili per Hewlett Packard 150: Visi-
cale. Microplan. multiplun, Lotus. Simphonv.
dBase II. MBA Contesi. Basic. Fortran. Cò-
mi. Pascal. Assembler. Meniomaker. Word-
tar. Graphic. Piclure. Pertecl. PCF. Condor.
Della. Perl, Statistica. DOS avanzato, conta-
bilità generale, magazzino e fatturazione, con-
inio. studi medici. Disponiamo, inoltre,
di ampia documentazione tecnica sul sistema
I IP 1 50. Richiedere SOFT GUIDE 64 o 150.
■gando francobollo, a: Pocket Group - V
toruso. 34 - 70124 Bari.
ido software per Apple. Programmi geslio-
i. di ingegneria, di grafica, utility, giochi.
. con relativa documentazione. F ra le ultime
zita, eccezionali programmi di grafica in
doppia risoluzione. Blocco di 10 programmi a
’.. 150.000. Rivolgersi a: Gianluca Pomponi -
' Raffaello 5 - 56020 Castel del Bosco (PI).
I. 057 1 -
Oli».
WORD/PROCESSOR. Possibilità d
:o stracciato. Per maggiori infor
tre o telefonare a: Ugo Paleri
a Cannicci n" 2 - 50018 Scandio
Tel. 055 252115.
Vendo Spectrum 48 K con interfaccia parlante
Currah. completo di 30 fra i migliori program-
mi in commercio (giochi. Utilities ccc.) al prez-
zo irripetibile di L. 400.000. (Valore commer-
ciale L. 600.000). Telefonare ore ufficio al
01 0/5640 16 chiedendo di Carlo Mognaschi -
Per Commodore 64: Tot Professional: avendo
ricevuto una copia in regalo e non essendo
interessalo alla compilazione delle schedine,
vendo il programma in mio possesso, inoltre
tendo eccezionale allineatorc testina drive 1541
per via Software, che risolve l'80"„ dei proble-
mi causati dalla cattiva o impossibile lettura
del dischetto. Disponibile anche su cassetta.
Vendo inoltre circa 1 500 programmi, tra cui
200 utility. Scrivere solo se interessati. Giusep-
pe Buchctli- Via Bolzano 24 - 640 14 Marlinsi-
euro (TI )
Nuovissimo Data Base “DB" inedito per Apple
con incredibile velocità di ricerca non compila-
to vendiamo lire 50.000 inoltre nuovissima fat-
turazione inedita per Apple lire 300.000. Tele-
fonare al 02 4520526 - 4526105. Il tuo compu-
ter Via Novara 383 - 20153 Milano. Cavallo
Massimiliano - Via Novara 383 - 20153 Mila-
Tastiere professionali per ZX Sinclair. Puoi
scegliere fra numerosi modelli, da L. 49.0IM):
semplice inserzione, ospitano computer, inter-
faccia I e alimentatore. Inoltre abbiamo: O-
MNICARD 55 meravigliosa interfaccia Spoe-
tami. QUADRUSUPP - EXP 3S4S - SBOX.
Tutte realizzazioni esclusive della MICROCY-
BER ELETTRONICA P.zza Isci. 28 - Cese-
na. Tel. 0547,20890. Allegando il bollo riceve-
rai ampia documentazione.
Commodore 64, Sharp 700. tutti gli MSX.
CBM 8000, Commodore 16 e 4 plus, Amstrad.
assortimento enorme di programmi originali c
di produzione propria. Per 64 ultimissime novi-
tà di giochi, gestionali e utilità. Per Sharp 700.
MSX. CBM 1 6 e Amstrad eccezionale serie di
programmi di produzione propria c tantissimi
giochi a prezzi eccezionali, Computer House
di Gìovannelli Claudio - Via Ripamonti 194 -
20141 Milano. Tel. ab. 02 536926. lei. ulT.
02 563105.
Software Ilouse E&S informatica Srl Napoli.
Via Belvedere 1 1 1 - 80 1 27 - Tel. 08 1 640854 ha
realizzato SW altamente professionale per: in-
gegneria civile, magazzino grossisti, studi me-
dici. rappresentanti, anagrafe per scuole, club,
parrocchie ecc. su Olivetti M24. CBM 64. Ql.
Sinclair TI 99/4A. Sono disponibili accesso:
periferiche per QL Sinclair accoppiatori ai
stiri. ULA.Z80. 6510. 6526. ROM 6581 Plus
Sinclair ecc. Cavetti RS232 QL. Schede RS
232 c 32 K espansione TI 99/4A ecc.
conti correnti. Funziona con floppy o con ca
setta: permette di gestire fino a 10 c/c diver
per un totale di 135 operazioni per ogni c
saldo liquido, saldo contabile per ogni c/c o i
totale. Estratto conto cte. Solo L. 120.000.
Informazioni: Attuati Luca - Via Rocca 18 -
24055 Cologno (BG). Tel. 035/896230. Ore
20.30-21.30. Riceverete il manuale.
Per Apple He vendo schede 64 K + 80 colonne
a L. 160.000. Per Apple II o compatibili: schede
80 colonne tipo Videx con softswitch incorpo-
rato a L. 140.0(8); buffer di tastiera a 64 carat-
teri L. 45.000: schede colore RGB a L. 35.000;
espansione I6K RAM (attiva il PRODOS) a
L. 95.000 - Prezzi IVA esci.: materiale nuo
garantito. Ricci Rinaldo - Via Giusti.
18038 Sanremo (IM). Tel. 0184/ 76355
882095.
Ambosessi ovunque residenti guadagnerete cs
guendo serio lavoro anche inerente l'cleltror
ca. in casa o fuori casa, anche metà giornata.
Per informazioni senza impegni scrivere alle-
gando i francobolli per la risposta a: Ditta
“CDA" - Casella Postale. 3160/SUCC. 3
REP.MC = 47100 Ferii - Galleria Cotogni. 8.
Il “Gruppo Utilizzatori Computer - Napoli"
annuncia l'apertura della nuova sezione dedi-
cata agli MSX che si affianca alla già lanciatis-
sima sezione Sinclair. Se possiedi uno Spec-
trum oppure un computer MSX scrivici. Potrai
far parte del club ed entrare in contatto ©
centinaia di amici in tutta Italia! Scrivici alle-
gando due bolli lettera avrai anche l'adesiv
regalo! G.U.C. Napoli c/o Doti. Roberto Chi-
menti - Via Luigi Rizzo. 18 - 80124 Napoli-
Tei. 081/617368 (prenderà il 7623121 . JtC
PORTA PORTESE
VIA DI PORTA MAGGIORE. 95
00185 ROMA
* * *
TEL. 06-770041
INSERZIONI GRATUITE
SETTIMANALE DI ANNUNCI GRATUITI
OLTRE 100 PAGINE CON 48 RUBRICHE
PIÙ DI 18.000 ANNUNCI - 300.000 LETTORI
I TUTTI I VENERDÌ IN EDICOLA I
MCmicrocornpuler n. 38 - feooraio 1980
SCOPRI LA D IFFERENZA DYSAN
Perchè Dysan?
Le Quattro
Ragioni Per
Preferire la
Differenza
Dysan
1 100% di superficie
i testata “error free”
2 Esclusiva tecnica
i di Burnishing
3 Speciale
• lubrificazione
4
Certificazione
« totale
Solo Dysan garantisce che
tutta la superficie della
diskette sia realmente
100% "èrror free”: un test
esclusivo certifica le tracce
e lo spazio tra le tracce
assicurando prestazioni
■‘error free” anche in
presenza di
disallineamento delle
testine.
Solo Dysan garantisce una
superficie "a specchio”
grazie alla sua avanzata ed
unica tecnica di
“burnishing” - questo
risultato assicura un
miglior segnale sulle
tracce, una minor
turbolenza sulle testine,
consentendo un sicuro
mantenimento dei dati
dopo milioni e milioni di
rotazioni.
Solo Dysan garantisce,
mediante uno speciale
procedimento di
lubrificazione, ottenuto
trattando la superficie con
il proprio esclusivo
lubrificante DY 10, che le
prestazioni “error free”
siano esaltate e mantenute
nel tempo.
Solo Dysan garantisce, con
il suo metodo automatico
di controllo qualità di tutta
la produzione (risultato di
una tecnologia leader nel
mondo) che ogni diskette
prodotta sia stata
singolarmente testata e
certificata.
datamatic
Datamatic S.p.A.
via Volturno, 46
20124 Milano
tei.: 02/6073876 (5 linee r.
telex: 315377 SADATA I
Filiale di Roma
via Città di Cascia, 29
a.) tei. 06/3279987
j^cippkz
Ormai si sa:
prima di acquistare un Personal Apple
conviene sempre parlarne con noi.
Roma ■ via Flavio Domiziano. 10 ■ tei. 06.5126700/5138023
Roma - Via F. Satolli. 55157159 - tei. 06.6386096/6386146
Roma ■ via Tuscolana, 350/350a - tei. 06. 7943980
Roma - via Nemorense, 14/16 ■ tei. 06.858296
Roma - viale Jonio, 333/335 - tei. 06.8170632
Gaeta - lungomare Caboto, 74 ■ tei. 0771.470168'
Latina - via A. Diaz, 14 ■ tei. 0773.495285
Viterbo - via Palmanova, 12c ■ tei. 0761.223977
bit computers
il piu grande in Italia.
COMPUTER
neb